// cpp(meta datanetwork format) source file GOAL.cpp generated from diagram GOAL
// generated on Mon Jan 05 16:06:58 2009

#include "GOAL.h"
#include "UmlExt.h"

#include "UdmStatic.h"

namespace GOAL {

		::Uml::Diagram umldiagram;

		::Uml::Class Plus::meta;
		::Uml::Class MgaObject::meta;
		::Uml::Class Divide::meta;
		::Uml::Class Times::meta;
		::Uml::Class Minus::meta;
		::Uml::Class Modulus::meta;
		::Uml::Class Adapter::meta;
		::Uml::Class RightHandSideObject::meta;
		::Uml::Class Module::meta;
		::Uml::Class ModuleAdapter::meta;
		::Uml::Class Not::meta;
		::Uml::Class Assignment::meta;
		::Uml::Class File::meta;
		::Uml::Class Console::meta;
		::Uml::Class Keyboard::meta;
		::Uml::Class ComposableBase::meta;
		::Uml::Class Brackets::meta;
		::Uml::Class Output::meta;
		::Uml::Class IndexConnection::meta;
		::Uml::Class NonModifyingConnection::meta;
		::Uml::Class PlusEquals::meta;
		::Uml::Class DivideEquals::meta;
		::Uml::Class MinusEquals::meta;
		::Uml::Class TimesEquals::meta;
		::Uml::Class Increment::meta;
		::Uml::Class Decrement::meta;
		::Uml::Class And::meta;
		::Uml::Class Or::meta;
		::Uml::Class OutputConnection::meta;
		::Uml::Class ArrayAssignmentConnection::meta;
		::Uml::Class AssignmentRHSConnection::meta;
		::Uml::Class ArgumentConnection::meta;
		::Uml::Class Return::meta;
		::Uml::Class UnaryOperator::meta;
		::Uml::Class BinaryOperator::meta;
		::Uml::Class FunctionCall::meta;
		::Uml::Class IOBase::meta;
		::Uml::Class ControlBase::meta;
		::Uml::Class BooleanOperators::meta;
		::Uml::Class AccumulatorBase::meta;
		::Uml::Class CommonConnection::meta;
		::Uml::Class ConstBase::meta;
		::Uml::Class AssignmentConnection::meta;
		::Uml::Class Function::meta;
		::Uml::Class IndexOperator::meta;
		::Uml::Class InfixOperators::meta;
		::Uml::Class Input::meta;
		::Uml::Class InputOutput::meta;
		::Uml::Class Argument::meta;
		::Uml::Class Variable::meta;
		::Uml::Class For::meta;
		::Uml::Class ClassMember::meta;
		::Uml::Class CodeAdapter::meta;
		::Uml::Class If::meta;
		::Uml::Class While::meta;
		::Uml::Class ClassConnection::meta;
		::Uml::Class ClassAdapter::meta;
		::Uml::Class NotEqual::meta;
		::Uml::Class Equal::meta;
		::Uml::Class LessThan::meta;
		::Uml::Class Array::meta;
		::Uml::Class Const::meta;
		::Uml::Class VariableBase::meta;
		::Uml::Class LessThanOrEqual::meta;
		::Uml::Class GreaterThan::meta;
		::Uml::Class GreaterThanOrEqual::meta;
		::Uml::Class ClassRef::meta;
		::Uml::Class VariableRef::meta;
		::Uml::Class KeyboardConnection::meta;
		::Uml::Class ConditionsAdapter::meta;
		::Uml::Class BridgeConnection::meta;
		::Uml::Class Class::meta;
		::Uml::Class RootFolder::meta;
		::Uml::Class VariableRef_RefersTo_Base::meta;
		::Uml::Attribute MgaObject::meta_position;
		::Uml::Attribute MgaObject::meta_name;
		::Uml::Attribute File::meta_options;
		::Uml::Attribute File::meta_filename;
		::Uml::Attribute ConstBase::meta_accessibility;
		::Uml::Attribute Function::meta_accessibility;
		::Uml::Attribute Variable::meta_Value;
		::Uml::Attribute Array::meta_Size;
		::Uml::Attribute Const::meta_Value;
		::Uml::Attribute Class::meta_ValueFormat;
		::Uml::Attribute Class::meta_accessibility;
		::Uml::Attribute RootFolder::meta_name;
		::Uml::AssociationRole RightHandSideObject::meta_dstOutputConnection, RightHandSideObject::meta_dstOutputConnection_rev;
		::Uml::AssociationRole RightHandSideObject::meta_dstAssignmentRHSConnection, RightHandSideObject::meta_dstAssignmentRHSConnection_rev;
		::Uml::AssociationRole RightHandSideObject::meta_dstNonModifyingConnection, RightHandSideObject::meta_dstNonModifyingConnection_rev;
		::Uml::AssociationRole RightHandSideObject::meta_srcNonModifyingConnection, RightHandSideObject::meta_srcNonModifyingConnection_rev;
		::Uml::AssociationRole Output::meta_srcOutputConnection, Output::meta_srcOutputConnection_rev;
		::Uml::AssociationRole IndexConnection::meta_dstIndexConnection_end_;
		::Uml::AssociationRole IndexConnection::meta_srcIndexConnection_end_;
		::Uml::AssociationRole NonModifyingConnection::meta_srcNonModifyingConnection_end_;
		::Uml::AssociationRole NonModifyingConnection::meta_dstNonModifyingConnection_end_;
		::Uml::AssociationRole OutputConnection::meta_dstOutputConnection_end_;
		::Uml::AssociationRole OutputConnection::meta_srcOutputConnection_end_;
		::Uml::AssociationRole ArrayAssignmentConnection::meta_dstArrayAssignmentConnection_end_;
		::Uml::AssociationRole ArrayAssignmentConnection::meta_srcArrayAssignmentConnection_end_;
		::Uml::AssociationRole AssignmentRHSConnection::meta_srcAssignmentRHSConnection_end_;
		::Uml::AssociationRole AssignmentRHSConnection::meta_dstAssignmentRHSConnection_end_;
		::Uml::AssociationRole ArgumentConnection::meta_srcOutputConnection_end_;
		::Uml::AssociationRole ArgumentConnection::meta_dstOutputConnection_end_;
		::Uml::AssociationRole FunctionCall::meta_ref;
		::Uml::AssociationRole AssignmentConnection::meta_srcAssignmentConnection_end_;
		::Uml::AssociationRole AssignmentConnection::meta_dstAssignmentConnection_end_;
		::Uml::AssociationRole Function::meta_referedbyFunctionRef;
		::Uml::AssociationRole IndexOperator::meta_srcIndexConnection, IndexOperator::meta_srcIndexConnection_rev;
		::Uml::AssociationRole IndexOperator::meta_srcArrayAssignmentConnection, IndexOperator::meta_srcArrayAssignmentConnection_rev;
		::Uml::AssociationRole InfixOperators::meta_srcAssignmentRHSConnection, InfixOperators::meta_srcAssignmentRHSConnection_rev;
		::Uml::AssociationRole InfixOperators::meta_dstOutputConnection, InfixOperators::meta_dstOutputConnection_rev;
		::Uml::AssociationRole InfixOperators::meta_dstArrayAssignmentConnection, InfixOperators::meta_dstArrayAssignmentConnection_rev;
		::Uml::AssociationRole InfixOperators::meta_dstAssignmentConnection, InfixOperators::meta_dstAssignmentConnection_rev;
		::Uml::AssociationRole InfixOperators::meta_srcKeyboardConnection, InfixOperators::meta_srcKeyboardConnection_rev;
		::Uml::AssociationRole Input::meta_dstKeyboardConnection, Input::meta_dstKeyboardConnection_rev;
		::Uml::AssociationRole Argument::meta_srcOutputConnection, Argument::meta_srcOutputConnection_rev;
		::Uml::AssociationRole VariableBase::meta_dstIndexConnection, VariableBase::meta_dstIndexConnection_rev;
		::Uml::AssociationRole VariableBase::meta_srcAssignmentConnection, VariableBase::meta_srcAssignmentConnection_rev;
		::Uml::AssociationRole ClassRef::meta_ref;
		::Uml::AssociationRole VariableRef::meta_ref;
		::Uml::AssociationRole KeyboardConnection::meta_dstKeyboardConnection_end_;
		::Uml::AssociationRole KeyboardConnection::meta_srcKeyboardConnection_end_;
		::Uml::AssociationRole BridgeConnection::meta_srcBridgeConnection_end_;
		::Uml::AssociationRole BridgeConnection::meta_dstBridgeConnection_end_;
		::Uml::AssociationRole Class::meta_referedbyClassRef;
		::Uml::AssociationRole Class::meta_dstBridgeConnection, Class::meta_dstBridgeConnection_rev;
		::Uml::AssociationRole Class::meta_srcBridgeConnection, Class::meta_srcBridgeConnection_rev;
		::Uml::AssociationRole VariableRef_RefersTo_Base::meta_referedbyVariableRef;
		::Uml::CompositionParentRole Module::meta_ModuleAdapter_parent;
		::Uml::CompositionParentRole ModuleAdapter::meta_RootFolder_parent;
		::Uml::CompositionParentRole ComposableBase::meta_Argument_parent;
		::Uml::CompositionParentRole ComposableBase::meta_Return_parent;
		::Uml::CompositionParentRole ComposableBase::meta_ClassMember_parent;
		::Uml::CompositionParentRole ComposableBase::meta_Array_parent;
		::Uml::CompositionParentRole ComposableBase::meta_Const_parent;
		::Uml::CompositionParentRole ComposableBase::meta_VariableBase_parent;
		::Uml::CompositionParentRole Return::meta_Function_parent;
		::Uml::CompositionParentRole UnaryOperator::meta_IndexOperator_parent;
		::Uml::CompositionParentRole UnaryOperator::meta_Function_parent;
		::Uml::CompositionParentRole UnaryOperator::meta_CodeAdapter_parent;
		::Uml::CompositionParentRole UnaryOperator::meta_ConditionsAdapter_parent;
		::Uml::CompositionParentRole BinaryOperator::meta_IndexOperator_parent;
		::Uml::CompositionParentRole BinaryOperator::meta_Function_parent;
		::Uml::CompositionParentRole BinaryOperator::meta_CodeAdapter_parent;
		::Uml::CompositionParentRole BinaryOperator::meta_ConditionsAdapter_parent;
		::Uml::CompositionParentRole FunctionCall::meta_IndexOperator_parent;
		::Uml::CompositionParentRole FunctionCall::meta_Function_parent;
		::Uml::CompositionParentRole FunctionCall::meta_CodeAdapter_parent;
		::Uml::CompositionParentRole FunctionCall::meta_ConditionsAdapter_parent;
		::Uml::CompositionParentRole IOBase::meta_CodeAdapter_parent;
		::Uml::CompositionParentRole IOBase::meta_Function_parent;
		::Uml::CompositionParentRole ControlBase::meta_CodeAdapter_parent;
		::Uml::CompositionParentRole ControlBase::meta_Function_parent;
		::Uml::CompositionParentRole BooleanOperators::meta_CodeAdapter_parent;
		::Uml::CompositionParentRole BooleanOperators::meta_IndexOperator_parent;
		::Uml::CompositionParentRole BooleanOperators::meta_ConditionsAdapter_parent;
		::Uml::CompositionParentRole AccumulatorBase::meta_CodeAdapter_parent;
		::Uml::CompositionParentRole AccumulatorBase::meta_Function_parent;
		::Uml::CompositionParentRole CommonConnection::meta_IndexOperator_parent;
		::Uml::CompositionParentRole CommonConnection::meta_Function_parent;
		::Uml::CompositionParentRole CommonConnection::meta_CodeAdapter_parent;
		::Uml::CompositionParentRole CommonConnection::meta_ConditionsAdapter_parent;
		::Uml::CompositionParentRole ConstBase::meta_IndexOperator_parent;
		::Uml::CompositionParentRole ConstBase::meta_Function_parent;
		::Uml::CompositionParentRole ConstBase::meta_CodeAdapter_parent;
		::Uml::CompositionParentRole ConstBase::meta_ClassAdapter_parent;
		::Uml::CompositionParentRole ConstBase::meta_ConditionsAdapter_parent;
		::Uml::CompositionParentRole Function::meta_ClassAdapter_parent;
		::Uml::CompositionParentRole IndexOperator::meta_Function_parent;
		::Uml::CompositionParentRole IndexOperator::meta_IndexOperator_parent;
		::Uml::CompositionParentRole IndexOperator::meta_CodeAdapter_parent;
		::Uml::CompositionParentRole IndexOperator::meta_ConditionsAdapter_parent;
		::Uml::CompositionParentRole InfixOperators::meta_Function_parent;
		::Uml::CompositionParentRole InfixOperators::meta_CodeAdapter_parent;
		::Uml::CompositionParentRole Input::meta_IndexOperator_parent;
		::Uml::CompositionParentRole Input::meta_ConditionsAdapter_parent;
		::Uml::CompositionParentRole InputOutput::meta_IndexOperator_parent;
		::Uml::CompositionParentRole InputOutput::meta_ConditionsAdapter_parent;
		::Uml::CompositionParentRole Argument::meta_Function_parent;
		::Uml::CompositionParentRole Variable::meta_Function_parent;
		::Uml::CompositionParentRole Variable::meta_IndexOperator_parent;
		::Uml::CompositionParentRole Variable::meta_CodeAdapter_parent;
		::Uml::CompositionParentRole Variable::meta_ConditionsAdapter_parent;
		::Uml::CompositionParentRole ClassMember::meta_ClassAdapter_parent;
		::Uml::CompositionParentRole CodeAdapter::meta_For_parent;
		::Uml::CompositionParentRole CodeAdapter::meta_CodeAdapter_parent;
		::Uml::CompositionParentRole CodeAdapter::meta_If_parent;
		::Uml::CompositionParentRole CodeAdapter::meta_While_parent;
		::Uml::CompositionParentRole CodeAdapter::meta_RootFolder_parent;
		::Uml::CompositionParentRole ClassConnection::meta_ClassAdapter_parent;
		::Uml::CompositionParentRole ClassAdapter::meta_RootFolder_parent;
		::Uml::CompositionParentRole Const::meta_Array_parent;
		::Uml::CompositionParentRole VariableRef::meta_VariableBase_parent;
		::Uml::CompositionParentRole ConditionsAdapter::meta_For_parent;
		::Uml::CompositionParentRole ConditionsAdapter::meta_If_parent;
		::Uml::CompositionParentRole ConditionsAdapter::meta_While_parent;
		::Uml::CompositionParentRole ConditionsAdapter::meta_RootFolder_parent;
		::Uml::CompositionParentRole Class::meta_ModuleAdapter_parent;
		::Uml::CompositionParentRole Class::meta_ClassAdapter_parent;
		::Uml::CompositionParentRole RootFolder::meta_RootFolder_parent;
		::Uml::CompositionChildRole ModuleAdapter::meta_Module_children;
		::Uml::CompositionChildRole ModuleAdapter::meta_Class_children;
		::Uml::CompositionChildRole Return::meta_ComposableBase_children;
		::Uml::CompositionChildRole Function::meta_AccumulatorBase_children;
		::Uml::CompositionChildRole Function::meta_Argument_children;
		::Uml::CompositionChildRole Function::meta_Variable_children;
		::Uml::CompositionChildRole Function::meta_ControlBase_children;
		::Uml::CompositionChildRole Function::meta_ConstBase_children;
		::Uml::CompositionChildRole Function::meta_CommonConnection_children;
		::Uml::CompositionChildRole Function::meta_IOBase_children;
		::Uml::CompositionChildRole Function::meta_BinaryOperator_children;
		::Uml::CompositionChildRole Function::meta_Return_children;
		::Uml::CompositionChildRole Function::meta_UnaryOperator_children;
		::Uml::CompositionChildRole Function::meta_InfixOperators_children;
		::Uml::CompositionChildRole Function::meta_FunctionCall_children;
		::Uml::CompositionChildRole Function::meta_IndexOperator_children;
		::Uml::CompositionChildRole IndexOperator::meta_UnaryOperator_children;
		::Uml::CompositionChildRole IndexOperator::meta_BinaryOperator_children;
		::Uml::CompositionChildRole IndexOperator::meta_ConstBase_children;
		::Uml::CompositionChildRole IndexOperator::meta_Input_children;
		::Uml::CompositionChildRole IndexOperator::meta_IndexOperator_children;
		::Uml::CompositionChildRole IndexOperator::meta_FunctionCall_children;
		::Uml::CompositionChildRole IndexOperator::meta_InputOutput_children;
		::Uml::CompositionChildRole IndexOperator::meta_BooleanOperators_children;
		::Uml::CompositionChildRole IndexOperator::meta_Variable_children;
		::Uml::CompositionChildRole IndexOperator::meta_CommonConnection_children;
		::Uml::CompositionChildRole Argument::meta_ComposableBase_children;
		::Uml::CompositionChildRole For::meta_CodeAdapter_children;
		::Uml::CompositionChildRole For::meta_ConditionsAdapter_children;
		::Uml::CompositionChildRole ClassMember::meta_ComposableBase_children;
		::Uml::CompositionChildRole CodeAdapter::meta_CommonConnection_children;
		::Uml::CompositionChildRole CodeAdapter::meta_FunctionCall_children;
		::Uml::CompositionChildRole CodeAdapter::meta_InfixOperators_children;
		::Uml::CompositionChildRole CodeAdapter::meta_BinaryOperator_children;
		::Uml::CompositionChildRole CodeAdapter::meta_UnaryOperator_children;
		::Uml::CompositionChildRole CodeAdapter::meta_ConstBase_children;
		::Uml::CompositionChildRole CodeAdapter::meta_IndexOperator_children;
		::Uml::CompositionChildRole CodeAdapter::meta_IOBase_children;
		::Uml::CompositionChildRole CodeAdapter::meta_CodeAdapter_children;
		::Uml::CompositionChildRole CodeAdapter::meta_AccumulatorBase_children;
		::Uml::CompositionChildRole CodeAdapter::meta_BooleanOperators_children;
		::Uml::CompositionChildRole CodeAdapter::meta_ControlBase_children;
		::Uml::CompositionChildRole CodeAdapter::meta_Variable_children;
		::Uml::CompositionChildRole If::meta_ConditionsAdapter_children;
		::Uml::CompositionChildRole If::meta_CodeAdapter_children;
		::Uml::CompositionChildRole While::meta_CodeAdapter_children;
		::Uml::CompositionChildRole While::meta_ConditionsAdapter_children;
		::Uml::CompositionChildRole ClassAdapter::meta_ClassMember_children;
		::Uml::CompositionChildRole ClassAdapter::meta_ClassConnection_children;
		::Uml::CompositionChildRole ClassAdapter::meta_ConstBase_children;
		::Uml::CompositionChildRole ClassAdapter::meta_Class_children;
		::Uml::CompositionChildRole ClassAdapter::meta_Function_children;
		::Uml::CompositionChildRole Array::meta_Const_children;
		::Uml::CompositionChildRole Array::meta_ComposableBase_children;
		::Uml::CompositionChildRole Const::meta_ComposableBase_children;
		::Uml::CompositionChildRole VariableBase::meta_VariableRef_children;
		::Uml::CompositionChildRole VariableBase::meta_ComposableBase_children;
		::Uml::CompositionChildRole ConditionsAdapter::meta_IndexOperator_children;
		::Uml::CompositionChildRole ConditionsAdapter::meta_BooleanOperators_children;
		::Uml::CompositionChildRole ConditionsAdapter::meta_Input_children;
		::Uml::CompositionChildRole ConditionsAdapter::meta_InputOutput_children;
		::Uml::CompositionChildRole ConditionsAdapter::meta_Variable_children;
		::Uml::CompositionChildRole ConditionsAdapter::meta_BinaryOperator_children;
		::Uml::CompositionChildRole ConditionsAdapter::meta_CommonConnection_children;
		::Uml::CompositionChildRole ConditionsAdapter::meta_ConstBase_children;
		::Uml::CompositionChildRole ConditionsAdapter::meta_UnaryOperator_children;
		::Uml::CompositionChildRole ConditionsAdapter::meta_FunctionCall_children;
		::Uml::CompositionChildRole RootFolder::meta_CodeAdapter_children;
		::Uml::CompositionChildRole RootFolder::meta_ModuleAdapter_children;
		::Uml::CompositionChildRole RootFolder::meta_ClassAdapter_children;
		::Uml::CompositionChildRole RootFolder::meta_ConditionsAdapter_children;
		::Uml::CompositionChildRole RootFolder::meta_RootFolder_children;
		::Uml::Constraint CommonConnection::meta_CheckForOneDest;
		::Uml::Constraint CommonConnection::meta_CheckForOneSource;
		::Uml::Constraint CommonConnection::meta_NoConnectToSelf;
		void Creates()
		{
			Plus::meta = ::Uml::Class::Create(umldiagram);
			MgaObject::meta = ::Uml::Class::Create(umldiagram);
			Divide::meta = ::Uml::Class::Create(umldiagram);
			Times::meta = ::Uml::Class::Create(umldiagram);
			Minus::meta = ::Uml::Class::Create(umldiagram);
			Modulus::meta = ::Uml::Class::Create(umldiagram);
			Adapter::meta = ::Uml::Class::Create(umldiagram);
			RightHandSideObject::meta = ::Uml::Class::Create(umldiagram);
			Module::meta = ::Uml::Class::Create(umldiagram);
			ModuleAdapter::meta = ::Uml::Class::Create(umldiagram);
			Not::meta = ::Uml::Class::Create(umldiagram);
			Assignment::meta = ::Uml::Class::Create(umldiagram);
			File::meta = ::Uml::Class::Create(umldiagram);
			Console::meta = ::Uml::Class::Create(umldiagram);
			Keyboard::meta = ::Uml::Class::Create(umldiagram);
			ComposableBase::meta = ::Uml::Class::Create(umldiagram);
			Brackets::meta = ::Uml::Class::Create(umldiagram);
			Output::meta = ::Uml::Class::Create(umldiagram);
			IndexConnection::meta = ::Uml::Class::Create(umldiagram);
			NonModifyingConnection::meta = ::Uml::Class::Create(umldiagram);
			PlusEquals::meta = ::Uml::Class::Create(umldiagram);
			DivideEquals::meta = ::Uml::Class::Create(umldiagram);
			MinusEquals::meta = ::Uml::Class::Create(umldiagram);
			TimesEquals::meta = ::Uml::Class::Create(umldiagram);
			Increment::meta = ::Uml::Class::Create(umldiagram);
			Decrement::meta = ::Uml::Class::Create(umldiagram);
			And::meta = ::Uml::Class::Create(umldiagram);
			Or::meta = ::Uml::Class::Create(umldiagram);
			OutputConnection::meta = ::Uml::Class::Create(umldiagram);
			ArrayAssignmentConnection::meta = ::Uml::Class::Create(umldiagram);
			AssignmentRHSConnection::meta = ::Uml::Class::Create(umldiagram);
			ArgumentConnection::meta = ::Uml::Class::Create(umldiagram);
			Return::meta = ::Uml::Class::Create(umldiagram);
			UnaryOperator::meta = ::Uml::Class::Create(umldiagram);
			BinaryOperator::meta = ::Uml::Class::Create(umldiagram);
			FunctionCall::meta = ::Uml::Class::Create(umldiagram);
			IOBase::meta = ::Uml::Class::Create(umldiagram);
			ControlBase::meta = ::Uml::Class::Create(umldiagram);
			BooleanOperators::meta = ::Uml::Class::Create(umldiagram);
			AccumulatorBase::meta = ::Uml::Class::Create(umldiagram);
			CommonConnection::meta = ::Uml::Class::Create(umldiagram);
			ConstBase::meta = ::Uml::Class::Create(umldiagram);
			AssignmentConnection::meta = ::Uml::Class::Create(umldiagram);
			Function::meta = ::Uml::Class::Create(umldiagram);
			IndexOperator::meta = ::Uml::Class::Create(umldiagram);
			InfixOperators::meta = ::Uml::Class::Create(umldiagram);
			Input::meta = ::Uml::Class::Create(umldiagram);
			InputOutput::meta = ::Uml::Class::Create(umldiagram);
			Argument::meta = ::Uml::Class::Create(umldiagram);
			Variable::meta = ::Uml::Class::Create(umldiagram);
			For::meta = ::Uml::Class::Create(umldiagram);
			ClassMember::meta = ::Uml::Class::Create(umldiagram);
			CodeAdapter::meta = ::Uml::Class::Create(umldiagram);
			If::meta = ::Uml::Class::Create(umldiagram);
			While::meta = ::Uml::Class::Create(umldiagram);
			ClassConnection::meta = ::Uml::Class::Create(umldiagram);
			ClassAdapter::meta = ::Uml::Class::Create(umldiagram);
			NotEqual::meta = ::Uml::Class::Create(umldiagram);
			Equal::meta = ::Uml::Class::Create(umldiagram);
			LessThan::meta = ::Uml::Class::Create(umldiagram);
			Array::meta = ::Uml::Class::Create(umldiagram);
			Const::meta = ::Uml::Class::Create(umldiagram);
			VariableBase::meta = ::Uml::Class::Create(umldiagram);
			LessThanOrEqual::meta = ::Uml::Class::Create(umldiagram);
			GreaterThan::meta = ::Uml::Class::Create(umldiagram);
			GreaterThanOrEqual::meta = ::Uml::Class::Create(umldiagram);
			ClassRef::meta = ::Uml::Class::Create(umldiagram);
			VariableRef::meta = ::Uml::Class::Create(umldiagram);
			KeyboardConnection::meta = ::Uml::Class::Create(umldiagram);
			ConditionsAdapter::meta = ::Uml::Class::Create(umldiagram);
			BridgeConnection::meta = ::Uml::Class::Create(umldiagram);
			Class::meta = ::Uml::Class::Create(umldiagram);
			RootFolder::meta = ::Uml::Class::Create(umldiagram);
			VariableRef_RefersTo_Base::meta = ::Uml::Class::Create(umldiagram);
			MgaObject::meta_position = ::Uml::Attribute::Create(MgaObject::meta);
			MgaObject::meta_name = ::Uml::Attribute::Create(MgaObject::meta);
			File::meta_options = ::Uml::Attribute::Create(File::meta);
			File::meta_filename = ::Uml::Attribute::Create(File::meta);
			CommonConnection::meta_CheckForOneDest = ::Uml::Constraint::Create(CommonConnection::meta);
			CommonConnection::meta_CheckForOneSource = ::Uml::Constraint::Create(CommonConnection::meta);
			CommonConnection::meta_NoConnectToSelf = ::Uml::Constraint::Create(CommonConnection::meta);
			ConstBase::meta_accessibility = ::Uml::Attribute::Create(ConstBase::meta);
			Function::meta_accessibility = ::Uml::Attribute::Create(Function::meta);
			Variable::meta_Value = ::Uml::Attribute::Create(Variable::meta);
			Array::meta_Size = ::Uml::Attribute::Create(Array::meta);
			Const::meta_Value = ::Uml::Attribute::Create(Const::meta);
			Class::meta_ValueFormat = ::Uml::Attribute::Create(Class::meta);
			Class::meta_accessibility = ::Uml::Attribute::Create(Class::meta);
			RootFolder::meta_name = ::Uml::Attribute::Create(RootFolder::meta);
		}
		void InitClassesAttributes()
		{
			Plus::meta.name() = "Plus";
			Plus::meta.isAbstract() = false;
			Plus::meta.stereotype() = "Atom";
			MgaObject::meta.name() = "MgaObject";
			MgaObject::meta.isAbstract() = true;
			Divide::meta.name() = "Divide";
			Divide::meta.isAbstract() = false;
			Divide::meta.stereotype() = "Atom";
			Times::meta.name() = "Times";
			Times::meta.isAbstract() = false;
			Times::meta.stereotype() = "Atom";
			Minus::meta.name() = "Minus";
			Minus::meta.isAbstract() = false;
			Minus::meta.stereotype() = "Atom";
			Modulus::meta.name() = "Modulus";
			Modulus::meta.isAbstract() = false;
			Modulus::meta.stereotype() = "Atom";
			Adapter::meta.name() = "Adapter";
			Adapter::meta.isAbstract() = true;
			Adapter::meta.stereotype() = "Model";
			RightHandSideObject::meta.name() = "RightHandSideObject";
			RightHandSideObject::meta.isAbstract() = true;
			RightHandSideObject::meta.stereotype() = "FCO";
			Module::meta.name() = "Module";
			Module::meta.isAbstract() = false;
			Module::meta.stereotype() = "Model";
			ModuleAdapter::meta.name() = "ModuleAdapter";
			ModuleAdapter::meta.isAbstract() = false;
			ModuleAdapter::meta.stereotype() = "Model";
			Not::meta.name() = "Not";
			Not::meta.isAbstract() = false;
			Not::meta.stereotype() = "Atom";
			Assignment::meta.name() = "Assignment";
			Assignment::meta.isAbstract() = false;
			Assignment::meta.stereotype() = "Atom";
			File::meta.name() = "File";
			File::meta.isAbstract() = false;
			File::meta.stereotype() = "Atom";
			Console::meta.name() = "Console";
			Console::meta.isAbstract() = false;
			Console::meta.stereotype() = "Atom";
			Keyboard::meta.name() = "Keyboard";
			Keyboard::meta.isAbstract() = false;
			Keyboard::meta.stereotype() = "Atom";
			ComposableBase::meta.name() = "ComposableBase";
			ComposableBase::meta.isAbstract() = true;
			ComposableBase::meta.stereotype() = "FCO";
			Brackets::meta.name() = "Brackets";
			Brackets::meta.isAbstract() = false;
			Brackets::meta.stereotype() = "Model";
			Output::meta.name() = "Output";
			Output::meta.isAbstract() = true;
			Output::meta.stereotype() = "FCO";
			IndexConnection::meta.name() = "IndexConnection";
			IndexConnection::meta.isAbstract() = false;
			IndexConnection::meta.stereotype() = "Connection";
			NonModifyingConnection::meta.name() = "NonModifyingConnection";
			NonModifyingConnection::meta.isAbstract() = false;
			NonModifyingConnection::meta.stereotype() = "Connection";
			PlusEquals::meta.name() = "PlusEquals";
			PlusEquals::meta.isAbstract() = false;
			PlusEquals::meta.stereotype() = "Atom";
			DivideEquals::meta.name() = "DivideEquals";
			DivideEquals::meta.isAbstract() = false;
			DivideEquals::meta.stereotype() = "Atom";
			MinusEquals::meta.name() = "MinusEquals";
			MinusEquals::meta.isAbstract() = false;
			MinusEquals::meta.stereotype() = "Atom";
			TimesEquals::meta.name() = "TimesEquals";
			TimesEquals::meta.isAbstract() = false;
			TimesEquals::meta.stereotype() = "Atom";
			Increment::meta.name() = "Increment";
			Increment::meta.isAbstract() = false;
			Increment::meta.stereotype() = "Atom";
			Decrement::meta.name() = "Decrement";
			Decrement::meta.isAbstract() = false;
			Decrement::meta.stereotype() = "Atom";
			And::meta.name() = "And";
			And::meta.isAbstract() = false;
			And::meta.stereotype() = "Atom";
			Or::meta.name() = "Or";
			Or::meta.isAbstract() = false;
			Or::meta.stereotype() = "Atom";
			OutputConnection::meta.name() = "OutputConnection";
			OutputConnection::meta.isAbstract() = false;
			OutputConnection::meta.stereotype() = "Connection";
			ArrayAssignmentConnection::meta.name() = "ArrayAssignmentConnection";
			ArrayAssignmentConnection::meta.isAbstract() = false;
			ArrayAssignmentConnection::meta.stereotype() = "Connection";
			AssignmentRHSConnection::meta.name() = "AssignmentRHSConnection";
			AssignmentRHSConnection::meta.isAbstract() = false;
			AssignmentRHSConnection::meta.stereotype() = "Connection";
			ArgumentConnection::meta.name() = "ArgumentConnection";
			ArgumentConnection::meta.isAbstract() = false;
			ArgumentConnection::meta.stereotype() = "Connection";
			Return::meta.name() = "Return";
			Return::meta.isAbstract() = false;
			Return::meta.stereotype() = "Model";
			UnaryOperator::meta.name() = "UnaryOperator";
			UnaryOperator::meta.isAbstract() = true;
			UnaryOperator::meta.stereotype() = "FCO";
			BinaryOperator::meta.name() = "BinaryOperator";
			BinaryOperator::meta.isAbstract() = true;
			BinaryOperator::meta.stereotype() = "FCO";
			FunctionCall::meta.name() = "FunctionCall";
			FunctionCall::meta.isAbstract() = false;
			FunctionCall::meta.stereotype() = "Reference";
			IOBase::meta.name() = "IOBase";
			IOBase::meta.isAbstract() = true;
			IOBase::meta.stereotype() = "FCO";
			ControlBase::meta.name() = "ControlBase";
			ControlBase::meta.isAbstract() = true;
			ControlBase::meta.stereotype() = "FCO";
			BooleanOperators::meta.name() = "BooleanOperators";
			BooleanOperators::meta.isAbstract() = true;
			BooleanOperators::meta.stereotype() = "FCO";
			AccumulatorBase::meta.name() = "AccumulatorBase";
			AccumulatorBase::meta.isAbstract() = true;
			AccumulatorBase::meta.stereotype() = "FCO";
			CommonConnection::meta.name() = "CommonConnection";
			CommonConnection::meta.isAbstract() = true;
			CommonConnection::meta.stereotype() = "Connection";
			ConstBase::meta.name() = "ConstBase";
			ConstBase::meta.isAbstract() = true;
			ConstBase::meta.stereotype() = "FCO";
			AssignmentConnection::meta.name() = "AssignmentConnection";
			AssignmentConnection::meta.isAbstract() = false;
			AssignmentConnection::meta.stereotype() = "Connection";
			Function::meta.name() = "Function";
			Function::meta.isAbstract() = false;
			Function::meta.stereotype() = "Model";
			IndexOperator::meta.name() = "IndexOperator";
			IndexOperator::meta.isAbstract() = true;
			IndexOperator::meta.stereotype() = "Model";
			InfixOperators::meta.name() = "InfixOperators";
			InfixOperators::meta.isAbstract() = true;
			InfixOperators::meta.stereotype() = "FCO";
			Input::meta.name() = "Input";
			Input::meta.isAbstract() = true;
			Input::meta.stereotype() = "FCO";
			InputOutput::meta.name() = "InputOutput";
			InputOutput::meta.isAbstract() = true;
			InputOutput::meta.stereotype() = "FCO";
			Argument::meta.name() = "Argument";
			Argument::meta.isAbstract() = false;
			Argument::meta.stereotype() = "Model";
			Variable::meta.name() = "Variable";
			Variable::meta.isAbstract() = false;
			Variable::meta.stereotype() = "Model";
			For::meta.name() = "For";
			For::meta.isAbstract() = false;
			For::meta.stereotype() = "Model";
			ClassMember::meta.name() = "ClassMember";
			ClassMember::meta.isAbstract() = false;
			ClassMember::meta.stereotype() = "Model";
			CodeAdapter::meta.name() = "CodeAdapter";
			CodeAdapter::meta.isAbstract() = false;
			CodeAdapter::meta.stereotype() = "Model";
			If::meta.name() = "If";
			If::meta.isAbstract() = false;
			If::meta.stereotype() = "Model";
			While::meta.name() = "While";
			While::meta.isAbstract() = false;
			While::meta.stereotype() = "Model";
			ClassConnection::meta.name() = "ClassConnection";
			ClassConnection::meta.isAbstract() = true;
			ClassConnection::meta.stereotype() = "Connection";
			ClassAdapter::meta.name() = "ClassAdapter";
			ClassAdapter::meta.isAbstract() = false;
			ClassAdapter::meta.stereotype() = "Model";
			NotEqual::meta.name() = "NotEqual";
			NotEqual::meta.isAbstract() = false;
			NotEqual::meta.stereotype() = "Atom";
			Equal::meta.name() = "Equal";
			Equal::meta.isAbstract() = false;
			Equal::meta.stereotype() = "Atom";
			LessThan::meta.name() = "LessThan";
			LessThan::meta.isAbstract() = false;
			LessThan::meta.stereotype() = "Atom";
			Array::meta.name() = "Array";
			Array::meta.isAbstract() = false;
			Array::meta.stereotype() = "Model";
			Const::meta.name() = "Const";
			Const::meta.isAbstract() = false;
			Const::meta.stereotype() = "Model";
			VariableBase::meta.name() = "VariableBase";
			VariableBase::meta.isAbstract() = true;
			VariableBase::meta.stereotype() = "Model";
			LessThanOrEqual::meta.name() = "LessThanOrEqual";
			LessThanOrEqual::meta.isAbstract() = false;
			LessThanOrEqual::meta.stereotype() = "Atom";
			GreaterThan::meta.name() = "GreaterThan";
			GreaterThan::meta.isAbstract() = false;
			GreaterThan::meta.stereotype() = "Atom";
			GreaterThanOrEqual::meta.name() = "GreaterThanOrEqual";
			GreaterThanOrEqual::meta.isAbstract() = false;
			GreaterThanOrEqual::meta.stereotype() = "Atom";
			ClassRef::meta.name() = "ClassRef";
			ClassRef::meta.isAbstract() = false;
			ClassRef::meta.stereotype() = "Reference";
			VariableRef::meta.name() = "VariableRef";
			VariableRef::meta.isAbstract() = false;
			VariableRef::meta.stereotype() = "Reference";
			KeyboardConnection::meta.name() = "KeyboardConnection";
			KeyboardConnection::meta.isAbstract() = false;
			KeyboardConnection::meta.stereotype() = "Connection";
			ConditionsAdapter::meta.name() = "ConditionsAdapter";
			ConditionsAdapter::meta.isAbstract() = false;
			ConditionsAdapter::meta.stereotype() = "Model";
			BridgeConnection::meta.name() = "BridgeConnection";
			BridgeConnection::meta.isAbstract() = false;
			BridgeConnection::meta.stereotype() = "Connection";
			Class::meta.name() = "Class";
			Class::meta.isAbstract() = false;
			Class::meta.stereotype() = "Model";
			RootFolder::meta.name() = "RootFolder";
			RootFolder::meta.isAbstract() = false;
			RootFolder::meta.stereotype() = "Folder";
			VariableRef_RefersTo_Base::meta.name() = "VariableRef_RefersTo_Base";
			VariableRef_RefersTo_Base::meta.isAbstract() = true;
			VariableRef_RefersTo_Base::meta.stereotype() = "FCO";
			
			MgaObject::meta_position.name() = "position";
			MgaObject::meta_position.type() = "String";
			MgaObject::meta_position.min() = 0;
			MgaObject::meta_position.max() = 1;
			MgaObject::meta_position.nonpersistent() = false;
			MgaObject::meta_position.registry() = false;
			MgaObject::meta_position.ordered() = false;
			MgaObject::meta_position.visibility() = "public";
			MgaObject::meta_position.defvalue() = vector<string>();
			MgaObject::meta_name.name() = "name";
			MgaObject::meta_name.type() = "String";
			MgaObject::meta_name.min() = 0;
			MgaObject::meta_name.max() = 1;
			MgaObject::meta_name.nonpersistent() = false;
			MgaObject::meta_name.registry() = false;
			MgaObject::meta_name.ordered() = false;
			MgaObject::meta_name.visibility() = "public";
			MgaObject::meta_name.defvalue() = vector<string>();
			vector<string> File_options_dva;
			File_options_dva.push_back("Read");
			File::meta_options.name() = "options";
			File::meta_options.type() = "String";
			File::meta_options.min() = 1;
			File::meta_options.max() = 1;
			File::meta_options.nonpersistent() = false;
			File::meta_options.registry() = false;
			File::meta_options.ordered() = false;
			File::meta_options.visibility() = "public";
			File::meta_options.defvalue() = File_options_dva;
			File::meta_filename.name() = "filename";
			File::meta_filename.type() = "String";
			File::meta_filename.min() = 1;
			File::meta_filename.max() = 1;
			File::meta_filename.nonpersistent() = false;
			File::meta_filename.registry() = false;
			File::meta_filename.ordered() = false;
			File::meta_filename.visibility() = "public";
			File::meta_filename.defvalue() = vector<string>();
			CommonConnection::meta_CheckForOneDest.name() = "CheckForOneDest";
			CommonConnection::meta_CheckForOneDest.description() = "Cannot connect to multiple components";
			CommonConnection::meta_CheckForOneDest.expression() = "let dst = self.connectionPoint(\"dst\").target() in\ndst.attachingConnections(\"dst\").size() < 2";
			CommonConnection::meta_CheckForOneSource.name() = "CheckForOneSource";
			CommonConnection::meta_CheckForOneSource.description() = "Cannot connect to multiple components";
			CommonConnection::meta_CheckForOneSource.expression() = "let src = self.connectionPoint(\"src\").target() in\nsrc.attachingConnections(\"src\").size() < 2";
			CommonConnection::meta_NoConnectToSelf.name() = "NoConnectToSelf";
			CommonConnection::meta_NoConnectToSelf.description() = "Cannot connect to the same component. It would produce non-deterministic behavior.";
			CommonConnection::meta_NoConnectToSelf.expression() = "let src = self.connectionPoint(\"src\").target() in\nlet dst = self.connectionPoint(\"dst\").target() in\nsrc <> dst";
			vector<string> ConstBase_accessibility_dva;
			ConstBase_accessibility_dva.push_back("private");
			ConstBase::meta_accessibility.name() = "accessibility";
			ConstBase::meta_accessibility.type() = "String";
			ConstBase::meta_accessibility.min() = 1;
			ConstBase::meta_accessibility.max() = 1;
			ConstBase::meta_accessibility.nonpersistent() = false;
			ConstBase::meta_accessibility.registry() = false;
			ConstBase::meta_accessibility.ordered() = false;
			ConstBase::meta_accessibility.visibility() = "public";
			ConstBase::meta_accessibility.defvalue() = ConstBase_accessibility_dva;
			vector<string> Function_accessibility_dva;
			Function_accessibility_dva.push_back("private");
			Function::meta_accessibility.name() = "accessibility";
			Function::meta_accessibility.type() = "String";
			Function::meta_accessibility.min() = 1;
			Function::meta_accessibility.max() = 1;
			Function::meta_accessibility.nonpersistent() = false;
			Function::meta_accessibility.registry() = false;
			Function::meta_accessibility.ordered() = false;
			Function::meta_accessibility.visibility() = "public";
			Function::meta_accessibility.defvalue() = Function_accessibility_dva;
			Variable::meta_Value.name() = "Value";
			Variable::meta_Value.type() = "String";
			Variable::meta_Value.min() = 1;
			Variable::meta_Value.max() = 1;
			Variable::meta_Value.nonpersistent() = false;
			Variable::meta_Value.registry() = false;
			Variable::meta_Value.ordered() = false;
			Variable::meta_Value.visibility() = "public";
			Variable::meta_Value.defvalue() = vector<string>();
			Array::meta_Size.name() = "Size";
			Array::meta_Size.type() = "Integer";
			Array::meta_Size.min() = 1;
			Array::meta_Size.max() = 1;
			Array::meta_Size.nonpersistent() = false;
			Array::meta_Size.registry() = false;
			Array::meta_Size.ordered() = false;
			Array::meta_Size.visibility() = "public";
			Array::meta_Size.defvalue() = vector<string>();
			Const::meta_Value.name() = "Value";
			Const::meta_Value.type() = "String";
			Const::meta_Value.min() = 1;
			Const::meta_Value.max() = 1;
			Const::meta_Value.nonpersistent() = false;
			Const::meta_Value.registry() = false;
			Const::meta_Value.ordered() = false;
			Const::meta_Value.visibility() = "public";
			Const::meta_Value.defvalue() = vector<string>();
			Class::meta_ValueFormat.name() = "ValueFormat";
			Class::meta_ValueFormat.type() = "String";
			Class::meta_ValueFormat.min() = 1;
			Class::meta_ValueFormat.max() = 1;
			Class::meta_ValueFormat.nonpersistent() = false;
			Class::meta_ValueFormat.registry() = false;
			Class::meta_ValueFormat.ordered() = false;
			Class::meta_ValueFormat.visibility() = "public";
			Class::meta_ValueFormat.defvalue() = vector<string>();
			vector<string> Class_accessibility_dva;
			Class_accessibility_dva.push_back("private");
			Class::meta_accessibility.name() = "accessibility";
			Class::meta_accessibility.type() = "String";
			Class::meta_accessibility.min() = 1;
			Class::meta_accessibility.max() = 1;
			Class::meta_accessibility.nonpersistent() = false;
			Class::meta_accessibility.registry() = false;
			Class::meta_accessibility.ordered() = false;
			Class::meta_accessibility.visibility() = "public";
			Class::meta_accessibility.defvalue() = Class_accessibility_dva;
			RootFolder::meta_name.name() = "name";
			RootFolder::meta_name.type() = "String";
			RootFolder::meta_name.min() = 0;
			RootFolder::meta_name.max() = 1;
			RootFolder::meta_name.nonpersistent() = false;
			RootFolder::meta_name.registry() = false;
			RootFolder::meta_name.ordered() = false;
			RootFolder::meta_name.visibility() = "public";
			RootFolder::meta_name.defvalue() = vector<string>();
			
		}
		void CreatesNamespaces()
		{
		}
		void InitNamespaces()
		{
		}
		void InitAssociation0()
		{
			::Uml::Association ass = ::Uml::Association::Create(umldiagram);
			ass.name() = "ArgumentConnection";
			ass.assocClass() = ::GOAL::ArgumentConnection::meta;
			::GOAL::RightHandSideObject::meta_dstOutputConnection = ::Uml::AssociationRole::Create(ass);
			::GOAL::RightHandSideObject::meta_dstOutputConnection.name() = "dstOutputConnection";
			::GOAL::RightHandSideObject::meta_dstOutputConnection.min() = 0;
			::GOAL::RightHandSideObject::meta_dstOutputConnection.max() = -1;
			::GOAL::RightHandSideObject::meta_dstOutputConnection.isNavigable() = true;
			::GOAL::RightHandSideObject::meta_dstOutputConnection.isPrimary() = false;
			::GOAL::RightHandSideObject::meta_dstOutputConnection.target() = ::GOAL::Argument::meta;
			::GOAL::ArgumentConnection::meta_dstOutputConnection_end_ = ::GOAL::Argument::meta_srcOutputConnection_rev = ::GOAL::RightHandSideObject::meta_dstOutputConnection;
			::GOAL::Argument::meta_srcOutputConnection = ::Uml::AssociationRole::Create(ass);
			::GOAL::Argument::meta_srcOutputConnection.name() = "srcOutputConnection";
			::GOAL::Argument::meta_srcOutputConnection.min() = 0;
			::GOAL::Argument::meta_srcOutputConnection.max() = -1;
			::GOAL::Argument::meta_srcOutputConnection.isNavigable() = true;
			::GOAL::Argument::meta_srcOutputConnection.isPrimary() = false;
			::GOAL::Argument::meta_srcOutputConnection.target() = ::GOAL::RightHandSideObject::meta;
			::GOAL::ArgumentConnection::meta_srcOutputConnection_end_ = ::GOAL::RightHandSideObject::meta_dstOutputConnection_rev = ::GOAL::Argument::meta_srcOutputConnection;
		};
		void InitAssociation1()
		{
			::Uml::Association ass = ::Uml::Association::Create(umldiagram);
			ass.name() = "AssignmentRHSConnection";
			ass.assocClass() = ::GOAL::AssignmentRHSConnection::meta;
			::GOAL::RightHandSideObject::meta_dstAssignmentRHSConnection = ::Uml::AssociationRole::Create(ass);
			::GOAL::RightHandSideObject::meta_dstAssignmentRHSConnection.name() = "dstAssignmentRHSConnection";
			::GOAL::RightHandSideObject::meta_dstAssignmentRHSConnection.min() = 0;
			::GOAL::RightHandSideObject::meta_dstAssignmentRHSConnection.max() = -1;
			::GOAL::RightHandSideObject::meta_dstAssignmentRHSConnection.isNavigable() = true;
			::GOAL::RightHandSideObject::meta_dstAssignmentRHSConnection.isPrimary() = false;
			::GOAL::RightHandSideObject::meta_dstAssignmentRHSConnection.target() = ::GOAL::InfixOperators::meta;
			::GOAL::AssignmentRHSConnection::meta_dstAssignmentRHSConnection_end_ = ::GOAL::InfixOperators::meta_srcAssignmentRHSConnection_rev = ::GOAL::RightHandSideObject::meta_dstAssignmentRHSConnection;
			::GOAL::InfixOperators::meta_srcAssignmentRHSConnection = ::Uml::AssociationRole::Create(ass);
			::GOAL::InfixOperators::meta_srcAssignmentRHSConnection.name() = "srcAssignmentRHSConnection";
			::GOAL::InfixOperators::meta_srcAssignmentRHSConnection.min() = 0;
			::GOAL::InfixOperators::meta_srcAssignmentRHSConnection.max() = -1;
			::GOAL::InfixOperators::meta_srcAssignmentRHSConnection.isNavigable() = true;
			::GOAL::InfixOperators::meta_srcAssignmentRHSConnection.isPrimary() = false;
			::GOAL::InfixOperators::meta_srcAssignmentRHSConnection.target() = ::GOAL::RightHandSideObject::meta;
			::GOAL::AssignmentRHSConnection::meta_srcAssignmentRHSConnection_end_ = ::GOAL::RightHandSideObject::meta_dstAssignmentRHSConnection_rev = ::GOAL::InfixOperators::meta_srcAssignmentRHSConnection;
		};
		void InitAssociation2()
		{
			::Uml::Association ass = ::Uml::Association::Create(umldiagram);
			ass.name() = "NonModifyingConnection";
			ass.assocClass() = ::GOAL::NonModifyingConnection::meta;
			::GOAL::RightHandSideObject::meta_dstNonModifyingConnection = ::Uml::AssociationRole::Create(ass);
			::GOAL::RightHandSideObject::meta_dstNonModifyingConnection.name() = "dstNonModifyingConnection";
			::GOAL::RightHandSideObject::meta_dstNonModifyingConnection.min() = 0;
			::GOAL::RightHandSideObject::meta_dstNonModifyingConnection.max() = -1;
			::GOAL::RightHandSideObject::meta_dstNonModifyingConnection.isNavigable() = true;
			::GOAL::RightHandSideObject::meta_dstNonModifyingConnection.isPrimary() = false;
			::GOAL::RightHandSideObject::meta_dstNonModifyingConnection.target() = ::GOAL::RightHandSideObject::meta;
			::GOAL::NonModifyingConnection::meta_dstNonModifyingConnection_end_ = ::GOAL::RightHandSideObject::meta_srcNonModifyingConnection_rev = ::GOAL::RightHandSideObject::meta_dstNonModifyingConnection;
			::GOAL::RightHandSideObject::meta_srcNonModifyingConnection = ::Uml::AssociationRole::Create(ass);
			::GOAL::RightHandSideObject::meta_srcNonModifyingConnection.name() = "srcNonModifyingConnection";
			::GOAL::RightHandSideObject::meta_srcNonModifyingConnection.min() = 0;
			::GOAL::RightHandSideObject::meta_srcNonModifyingConnection.max() = -1;
			::GOAL::RightHandSideObject::meta_srcNonModifyingConnection.isNavigable() = true;
			::GOAL::RightHandSideObject::meta_srcNonModifyingConnection.isPrimary() = false;
			::GOAL::RightHandSideObject::meta_srcNonModifyingConnection.target() = ::GOAL::RightHandSideObject::meta;
			::GOAL::NonModifyingConnection::meta_srcNonModifyingConnection_end_ = ::GOAL::RightHandSideObject::meta_dstNonModifyingConnection_rev = ::GOAL::RightHandSideObject::meta_srcNonModifyingConnection;
		};
		void InitAssociation3()
		{
			::Uml::Association ass = ::Uml::Association::Create(umldiagram);
			ass.name() = "OutputConnection";
			ass.assocClass() = ::GOAL::OutputConnection::meta;
			::GOAL::Output::meta_srcOutputConnection = ::Uml::AssociationRole::Create(ass);
			::GOAL::Output::meta_srcOutputConnection.name() = "srcOutputConnection";
			::GOAL::Output::meta_srcOutputConnection.min() = 0;
			::GOAL::Output::meta_srcOutputConnection.max() = -1;
			::GOAL::Output::meta_srcOutputConnection.isNavigable() = true;
			::GOAL::Output::meta_srcOutputConnection.isPrimary() = false;
			::GOAL::Output::meta_srcOutputConnection.target() = ::GOAL::InfixOperators::meta;
			::GOAL::OutputConnection::meta_srcOutputConnection_end_ = ::GOAL::InfixOperators::meta_dstOutputConnection_rev = ::GOAL::Output::meta_srcOutputConnection;
			::GOAL::InfixOperators::meta_dstOutputConnection = ::Uml::AssociationRole::Create(ass);
			::GOAL::InfixOperators::meta_dstOutputConnection.name() = "dstOutputConnection";
			::GOAL::InfixOperators::meta_dstOutputConnection.min() = 0;
			::GOAL::InfixOperators::meta_dstOutputConnection.max() = -1;
			::GOAL::InfixOperators::meta_dstOutputConnection.isNavigable() = true;
			::GOAL::InfixOperators::meta_dstOutputConnection.isPrimary() = false;
			::GOAL::InfixOperators::meta_dstOutputConnection.target() = ::GOAL::Output::meta;
			::GOAL::OutputConnection::meta_dstOutputConnection_end_ = ::GOAL::Output::meta_srcOutputConnection_rev = ::GOAL::InfixOperators::meta_dstOutputConnection;
		};
		void InitAssociation4()
		{
			::Uml::Association ass = ::Uml::Association::Create(umldiagram);
			::GOAL::Function::meta_referedbyFunctionRef = ::Uml::AssociationRole::Create(ass);
			::GOAL::Function::meta_referedbyFunctionRef.name() = "referedbyFunctionRef";
			::GOAL::Function::meta_referedbyFunctionRef.min() = 0;
			::GOAL::Function::meta_referedbyFunctionRef.max() = -1;
			::GOAL::Function::meta_referedbyFunctionRef.isNavigable() = true;
			::GOAL::Function::meta_referedbyFunctionRef.isPrimary() = false;
			::GOAL::Function::meta_referedbyFunctionRef.target() = ::GOAL::FunctionCall::meta;
			::GOAL::FunctionCall::meta_ref = ::Uml::AssociationRole::Create(ass);
			::GOAL::FunctionCall::meta_ref.name() = "ref";
			::GOAL::FunctionCall::meta_ref.min() = 0;
			::GOAL::FunctionCall::meta_ref.max() = 1;
			::GOAL::FunctionCall::meta_ref.isNavigable() = true;
			::GOAL::FunctionCall::meta_ref.isPrimary() = false;
			::GOAL::FunctionCall::meta_ref.target() = ::GOAL::Function::meta;
		};
		void InitAssociation5()
		{
			::Uml::Association ass = ::Uml::Association::Create(umldiagram);
			ass.name() = "IndexConnection";
			ass.assocClass() = ::GOAL::IndexConnection::meta;
			::GOAL::IndexOperator::meta_srcIndexConnection = ::Uml::AssociationRole::Create(ass);
			::GOAL::IndexOperator::meta_srcIndexConnection.name() = "srcIndexConnection";
			::GOAL::IndexOperator::meta_srcIndexConnection.min() = 0;
			::GOAL::IndexOperator::meta_srcIndexConnection.max() = -1;
			::GOAL::IndexOperator::meta_srcIndexConnection.isNavigable() = true;
			::GOAL::IndexOperator::meta_srcIndexConnection.isPrimary() = false;
			::GOAL::IndexOperator::meta_srcIndexConnection.target() = ::GOAL::VariableBase::meta;
			::GOAL::IndexConnection::meta_srcIndexConnection_end_ = ::GOAL::VariableBase::meta_dstIndexConnection_rev = ::GOAL::IndexOperator::meta_srcIndexConnection;
			::GOAL::VariableBase::meta_dstIndexConnection = ::Uml::AssociationRole::Create(ass);
			::GOAL::VariableBase::meta_dstIndexConnection.name() = "dstIndexConnection";
			::GOAL::VariableBase::meta_dstIndexConnection.min() = 0;
			::GOAL::VariableBase::meta_dstIndexConnection.max() = -1;
			::GOAL::VariableBase::meta_dstIndexConnection.isNavigable() = true;
			::GOAL::VariableBase::meta_dstIndexConnection.isPrimary() = false;
			::GOAL::VariableBase::meta_dstIndexConnection.target() = ::GOAL::IndexOperator::meta;
			::GOAL::IndexConnection::meta_dstIndexConnection_end_ = ::GOAL::IndexOperator::meta_srcIndexConnection_rev = ::GOAL::VariableBase::meta_dstIndexConnection;
		};
		void InitAssociation6()
		{
			::Uml::Association ass = ::Uml::Association::Create(umldiagram);
			ass.name() = "ArrayAssignmentConnection";
			ass.assocClass() = ::GOAL::ArrayAssignmentConnection::meta;
			::GOAL::IndexOperator::meta_srcArrayAssignmentConnection = ::Uml::AssociationRole::Create(ass);
			::GOAL::IndexOperator::meta_srcArrayAssignmentConnection.name() = "srcArrayAssignmentConnection";
			::GOAL::IndexOperator::meta_srcArrayAssignmentConnection.min() = 0;
			::GOAL::IndexOperator::meta_srcArrayAssignmentConnection.max() = -1;
			::GOAL::IndexOperator::meta_srcArrayAssignmentConnection.isNavigable() = true;
			::GOAL::IndexOperator::meta_srcArrayAssignmentConnection.isPrimary() = false;
			::GOAL::IndexOperator::meta_srcArrayAssignmentConnection.target() = ::GOAL::InfixOperators::meta;
			::GOAL::ArrayAssignmentConnection::meta_srcArrayAssignmentConnection_end_ = ::GOAL::InfixOperators::meta_dstArrayAssignmentConnection_rev = ::GOAL::IndexOperator::meta_srcArrayAssignmentConnection;
			::GOAL::InfixOperators::meta_dstArrayAssignmentConnection = ::Uml::AssociationRole::Create(ass);
			::GOAL::InfixOperators::meta_dstArrayAssignmentConnection.name() = "dstArrayAssignmentConnection";
			::GOAL::InfixOperators::meta_dstArrayAssignmentConnection.min() = 0;
			::GOAL::InfixOperators::meta_dstArrayAssignmentConnection.max() = -1;
			::GOAL::InfixOperators::meta_dstArrayAssignmentConnection.isNavigable() = true;
			::GOAL::InfixOperators::meta_dstArrayAssignmentConnection.isPrimary() = false;
			::GOAL::InfixOperators::meta_dstArrayAssignmentConnection.target() = ::GOAL::IndexOperator::meta;
			::GOAL::ArrayAssignmentConnection::meta_dstArrayAssignmentConnection_end_ = ::GOAL::IndexOperator::meta_srcArrayAssignmentConnection_rev = ::GOAL::InfixOperators::meta_dstArrayAssignmentConnection;
		};
		void InitAssociation7()
		{
			::Uml::Association ass = ::Uml::Association::Create(umldiagram);
			ass.name() = "AssignmentConnection";
			ass.assocClass() = ::GOAL::AssignmentConnection::meta;
			::GOAL::InfixOperators::meta_dstAssignmentConnection = ::Uml::AssociationRole::Create(ass);
			::GOAL::InfixOperators::meta_dstAssignmentConnection.name() = "dstAssignmentConnection";
			::GOAL::InfixOperators::meta_dstAssignmentConnection.min() = 0;
			::GOAL::InfixOperators::meta_dstAssignmentConnection.max() = -1;
			::GOAL::InfixOperators::meta_dstAssignmentConnection.isNavigable() = true;
			::GOAL::InfixOperators::meta_dstAssignmentConnection.isPrimary() = false;
			::GOAL::InfixOperators::meta_dstAssignmentConnection.target() = ::GOAL::VariableBase::meta;
			::GOAL::AssignmentConnection::meta_dstAssignmentConnection_end_ = ::GOAL::VariableBase::meta_srcAssignmentConnection_rev = ::GOAL::InfixOperators::meta_dstAssignmentConnection;
			::GOAL::VariableBase::meta_srcAssignmentConnection = ::Uml::AssociationRole::Create(ass);
			::GOAL::VariableBase::meta_srcAssignmentConnection.name() = "srcAssignmentConnection";
			::GOAL::VariableBase::meta_srcAssignmentConnection.min() = 0;
			::GOAL::VariableBase::meta_srcAssignmentConnection.max() = -1;
			::GOAL::VariableBase::meta_srcAssignmentConnection.isNavigable() = true;
			::GOAL::VariableBase::meta_srcAssignmentConnection.isPrimary() = false;
			::GOAL::VariableBase::meta_srcAssignmentConnection.target() = ::GOAL::InfixOperators::meta;
			::GOAL::AssignmentConnection::meta_srcAssignmentConnection_end_ = ::GOAL::InfixOperators::meta_dstAssignmentConnection_rev = ::GOAL::VariableBase::meta_srcAssignmentConnection;
		};
		void InitAssociation8()
		{
			::Uml::Association ass = ::Uml::Association::Create(umldiagram);
			ass.name() = "KeyboardConnection";
			ass.assocClass() = ::GOAL::KeyboardConnection::meta;
			::GOAL::InfixOperators::meta_srcKeyboardConnection = ::Uml::AssociationRole::Create(ass);
			::GOAL::InfixOperators::meta_srcKeyboardConnection.name() = "srcKeyboardConnection";
			::GOAL::InfixOperators::meta_srcKeyboardConnection.min() = 0;
			::GOAL::InfixOperators::meta_srcKeyboardConnection.max() = -1;
			::GOAL::InfixOperators::meta_srcKeyboardConnection.isNavigable() = true;
			::GOAL::InfixOperators::meta_srcKeyboardConnection.isPrimary() = false;
			::GOAL::InfixOperators::meta_srcKeyboardConnection.target() = ::GOAL::Input::meta;
			::GOAL::KeyboardConnection::meta_srcKeyboardConnection_end_ = ::GOAL::Input::meta_dstKeyboardConnection_rev = ::GOAL::InfixOperators::meta_srcKeyboardConnection;
			::GOAL::Input::meta_dstKeyboardConnection = ::Uml::AssociationRole::Create(ass);
			::GOAL::Input::meta_dstKeyboardConnection.name() = "dstKeyboardConnection";
			::GOAL::Input::meta_dstKeyboardConnection.min() = 0;
			::GOAL::Input::meta_dstKeyboardConnection.max() = -1;
			::GOAL::Input::meta_dstKeyboardConnection.isNavigable() = true;
			::GOAL::Input::meta_dstKeyboardConnection.isPrimary() = false;
			::GOAL::Input::meta_dstKeyboardConnection.target() = ::GOAL::InfixOperators::meta;
			::GOAL::KeyboardConnection::meta_dstKeyboardConnection_end_ = ::GOAL::InfixOperators::meta_srcKeyboardConnection_rev = ::GOAL::Input::meta_dstKeyboardConnection;
		};
		void InitAssociation9()
		{
			::Uml::Association ass = ::Uml::Association::Create(umldiagram);
			::GOAL::Class::meta_referedbyClassRef = ::Uml::AssociationRole::Create(ass);
			::GOAL::Class::meta_referedbyClassRef.name() = "referedbyClassRef";
			::GOAL::Class::meta_referedbyClassRef.min() = 0;
			::GOAL::Class::meta_referedbyClassRef.max() = -1;
			::GOAL::Class::meta_referedbyClassRef.isNavigable() = true;
			::GOAL::Class::meta_referedbyClassRef.isPrimary() = false;
			::GOAL::Class::meta_referedbyClassRef.target() = ::GOAL::ClassRef::meta;
			::GOAL::ClassRef::meta_ref = ::Uml::AssociationRole::Create(ass);
			::GOAL::ClassRef::meta_ref.name() = "ref";
			::GOAL::ClassRef::meta_ref.min() = 0;
			::GOAL::ClassRef::meta_ref.max() = 1;
			::GOAL::ClassRef::meta_ref.isNavigable() = true;
			::GOAL::ClassRef::meta_ref.isPrimary() = false;
			::GOAL::ClassRef::meta_ref.target() = ::GOAL::Class::meta;
		};
		void InitAssociation10()
		{
			::Uml::Association ass = ::Uml::Association::Create(umldiagram);
			::GOAL::VariableRef_RefersTo_Base::meta_referedbyVariableRef = ::Uml::AssociationRole::Create(ass);
			::GOAL::VariableRef_RefersTo_Base::meta_referedbyVariableRef.name() = "referedbyVariableRef";
			::GOAL::VariableRef_RefersTo_Base::meta_referedbyVariableRef.min() = 0;
			::GOAL::VariableRef_RefersTo_Base::meta_referedbyVariableRef.max() = -1;
			::GOAL::VariableRef_RefersTo_Base::meta_referedbyVariableRef.isNavigable() = true;
			::GOAL::VariableRef_RefersTo_Base::meta_referedbyVariableRef.isPrimary() = false;
			::GOAL::VariableRef_RefersTo_Base::meta_referedbyVariableRef.target() = ::GOAL::VariableRef::meta;
			::GOAL::VariableRef::meta_ref = ::Uml::AssociationRole::Create(ass);
			::GOAL::VariableRef::meta_ref.name() = "ref";
			::GOAL::VariableRef::meta_ref.min() = 0;
			::GOAL::VariableRef::meta_ref.max() = 1;
			::GOAL::VariableRef::meta_ref.isNavigable() = true;
			::GOAL::VariableRef::meta_ref.isPrimary() = false;
			::GOAL::VariableRef::meta_ref.target() = ::GOAL::VariableRef_RefersTo_Base::meta;
		};
		void InitAssociation11()
		{
			::Uml::Association ass = ::Uml::Association::Create(umldiagram);
			ass.name() = "BridgeConnection";
			ass.assocClass() = ::GOAL::BridgeConnection::meta;
			::GOAL::Class::meta_dstBridgeConnection = ::Uml::AssociationRole::Create(ass);
			::GOAL::Class::meta_dstBridgeConnection.name() = "dstBridgeConnection";
			::GOAL::Class::meta_dstBridgeConnection.min() = 0;
			::GOAL::Class::meta_dstBridgeConnection.max() = -1;
			::GOAL::Class::meta_dstBridgeConnection.isNavigable() = true;
			::GOAL::Class::meta_dstBridgeConnection.isPrimary() = false;
			::GOAL::Class::meta_dstBridgeConnection.target() = ::GOAL::Class::meta;
			::GOAL::BridgeConnection::meta_dstBridgeConnection_end_ = ::GOAL::Class::meta_srcBridgeConnection_rev = ::GOAL::Class::meta_dstBridgeConnection;
			::GOAL::Class::meta_srcBridgeConnection = ::Uml::AssociationRole::Create(ass);
			::GOAL::Class::meta_srcBridgeConnection.name() = "srcBridgeConnection";
			::GOAL::Class::meta_srcBridgeConnection.min() = 0;
			::GOAL::Class::meta_srcBridgeConnection.max() = -1;
			::GOAL::Class::meta_srcBridgeConnection.isNavigable() = true;
			::GOAL::Class::meta_srcBridgeConnection.isPrimary() = false;
			::GOAL::Class::meta_srcBridgeConnection.target() = ::GOAL::Class::meta;
			::GOAL::BridgeConnection::meta_srcBridgeConnection_end_ = ::GOAL::Class::meta_dstBridgeConnection_rev = ::GOAL::Class::meta_srcBridgeConnection;
		};
		void InitCrossNSAssociations()
		{
		}
		void InitComposition0()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::Module::meta_ModuleAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::Module::meta_ModuleAdapter_parent.name() = "ModuleAdapter_parent";
			::GOAL::Module::meta_ModuleAdapter_parent.isNavigable() = true;
			::GOAL::Module::meta_ModuleAdapter_parent.target() = ::GOAL::ModuleAdapter::meta;
			::GOAL::ModuleAdapter::meta_Module_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::ModuleAdapter::meta_Module_children.name() = "Module";
			::GOAL::ModuleAdapter::meta_Module_children.min() = 0;
			::GOAL::ModuleAdapter::meta_Module_children.max() = -1;
			::GOAL::ModuleAdapter::meta_Module_children.isNavigable() = true;
			::GOAL::ModuleAdapter::meta_Module_children.target() = ::GOAL::Module::meta;
		}
		void InitComposition1()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::Class::meta_ModuleAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::Class::meta_ModuleAdapter_parent.name() = "ModuleAdapter_parent";
			::GOAL::Class::meta_ModuleAdapter_parent.isNavigable() = true;
			::GOAL::Class::meta_ModuleAdapter_parent.target() = ::GOAL::ModuleAdapter::meta;
			::GOAL::ModuleAdapter::meta_Class_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::ModuleAdapter::meta_Class_children.name() = "Class";
			::GOAL::ModuleAdapter::meta_Class_children.min() = 0;
			::GOAL::ModuleAdapter::meta_Class_children.max() = -1;
			::GOAL::ModuleAdapter::meta_Class_children.isNavigable() = true;
			::GOAL::ModuleAdapter::meta_Class_children.target() = ::GOAL::Class::meta;
		}
		void InitComposition2()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::ComposableBase::meta_Return_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::ComposableBase::meta_Return_parent.name() = "Return_parent";
			::GOAL::ComposableBase::meta_Return_parent.isNavigable() = true;
			::GOAL::ComposableBase::meta_Return_parent.target() = ::GOAL::Return::meta;
			::GOAL::Return::meta_ComposableBase_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::Return::meta_ComposableBase_children.name() = "ComposableBase";
			::GOAL::Return::meta_ComposableBase_children.min() = 0;
			::GOAL::Return::meta_ComposableBase_children.max() = -1;
			::GOAL::Return::meta_ComposableBase_children.isNavigable() = true;
			::GOAL::Return::meta_ComposableBase_children.target() = ::GOAL::ComposableBase::meta;
		}
		void InitComposition3()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::AccumulatorBase::meta_Function_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::AccumulatorBase::meta_Function_parent.name() = "Function_parent";
			::GOAL::AccumulatorBase::meta_Function_parent.isNavigable() = true;
			::GOAL::AccumulatorBase::meta_Function_parent.target() = ::GOAL::Function::meta;
			::GOAL::Function::meta_AccumulatorBase_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::Function::meta_AccumulatorBase_children.name() = "AccumulatorBase";
			::GOAL::Function::meta_AccumulatorBase_children.min() = 0;
			::GOAL::Function::meta_AccumulatorBase_children.max() = -1;
			::GOAL::Function::meta_AccumulatorBase_children.isNavigable() = true;
			::GOAL::Function::meta_AccumulatorBase_children.target() = ::GOAL::AccumulatorBase::meta;
		}
		void InitComposition4()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::Argument::meta_Function_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::Argument::meta_Function_parent.name() = "Function_parent";
			::GOAL::Argument::meta_Function_parent.isNavigable() = true;
			::GOAL::Argument::meta_Function_parent.target() = ::GOAL::Function::meta;
			::GOAL::Function::meta_Argument_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::Function::meta_Argument_children.name() = "Argument";
			::GOAL::Function::meta_Argument_children.min() = 0;
			::GOAL::Function::meta_Argument_children.max() = -1;
			::GOAL::Function::meta_Argument_children.isNavigable() = true;
			::GOAL::Function::meta_Argument_children.target() = ::GOAL::Argument::meta;
		}
		void InitComposition5()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::Variable::meta_Function_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::Variable::meta_Function_parent.name() = "Function_parent";
			::GOAL::Variable::meta_Function_parent.isNavigable() = true;
			::GOAL::Variable::meta_Function_parent.target() = ::GOAL::Function::meta;
			::GOAL::Function::meta_Variable_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::Function::meta_Variable_children.name() = "Variable";
			::GOAL::Function::meta_Variable_children.min() = 0;
			::GOAL::Function::meta_Variable_children.max() = -1;
			::GOAL::Function::meta_Variable_children.isNavigable() = true;
			::GOAL::Function::meta_Variable_children.target() = ::GOAL::Variable::meta;
		}
		void InitComposition6()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::ControlBase::meta_Function_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::ControlBase::meta_Function_parent.name() = "Function_parent";
			::GOAL::ControlBase::meta_Function_parent.isNavigable() = true;
			::GOAL::ControlBase::meta_Function_parent.target() = ::GOAL::Function::meta;
			::GOAL::Function::meta_ControlBase_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::Function::meta_ControlBase_children.name() = "ControlBase";
			::GOAL::Function::meta_ControlBase_children.min() = 0;
			::GOAL::Function::meta_ControlBase_children.max() = -1;
			::GOAL::Function::meta_ControlBase_children.isNavigable() = true;
			::GOAL::Function::meta_ControlBase_children.target() = ::GOAL::ControlBase::meta;
		}
		void InitComposition7()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::ConstBase::meta_Function_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::ConstBase::meta_Function_parent.name() = "Function_parent";
			::GOAL::ConstBase::meta_Function_parent.isNavigable() = true;
			::GOAL::ConstBase::meta_Function_parent.target() = ::GOAL::Function::meta;
			::GOAL::Function::meta_ConstBase_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::Function::meta_ConstBase_children.name() = "ConstBase";
			::GOAL::Function::meta_ConstBase_children.min() = 0;
			::GOAL::Function::meta_ConstBase_children.max() = -1;
			::GOAL::Function::meta_ConstBase_children.isNavigable() = true;
			::GOAL::Function::meta_ConstBase_children.target() = ::GOAL::ConstBase::meta;
		}
		void InitComposition8()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::CommonConnection::meta_Function_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::CommonConnection::meta_Function_parent.name() = "Function_parent";
			::GOAL::CommonConnection::meta_Function_parent.isNavigable() = true;
			::GOAL::CommonConnection::meta_Function_parent.target() = ::GOAL::Function::meta;
			::GOAL::Function::meta_CommonConnection_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::Function::meta_CommonConnection_children.name() = "CommonConnection";
			::GOAL::Function::meta_CommonConnection_children.min() = 0;
			::GOAL::Function::meta_CommonConnection_children.max() = -1;
			::GOAL::Function::meta_CommonConnection_children.isNavigable() = true;
			::GOAL::Function::meta_CommonConnection_children.target() = ::GOAL::CommonConnection::meta;
		}
		void InitComposition9()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::IOBase::meta_Function_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::IOBase::meta_Function_parent.name() = "Function_parent";
			::GOAL::IOBase::meta_Function_parent.isNavigable() = true;
			::GOAL::IOBase::meta_Function_parent.target() = ::GOAL::Function::meta;
			::GOAL::Function::meta_IOBase_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::Function::meta_IOBase_children.name() = "IOBase";
			::GOAL::Function::meta_IOBase_children.min() = 0;
			::GOAL::Function::meta_IOBase_children.max() = -1;
			::GOAL::Function::meta_IOBase_children.isNavigable() = true;
			::GOAL::Function::meta_IOBase_children.target() = ::GOAL::IOBase::meta;
		}
		void InitComposition10()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::BinaryOperator::meta_Function_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::BinaryOperator::meta_Function_parent.name() = "Function_parent";
			::GOAL::BinaryOperator::meta_Function_parent.isNavigable() = true;
			::GOAL::BinaryOperator::meta_Function_parent.target() = ::GOAL::Function::meta;
			::GOAL::Function::meta_BinaryOperator_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::Function::meta_BinaryOperator_children.name() = "BinaryOperator";
			::GOAL::Function::meta_BinaryOperator_children.min() = 0;
			::GOAL::Function::meta_BinaryOperator_children.max() = -1;
			::GOAL::Function::meta_BinaryOperator_children.isNavigable() = true;
			::GOAL::Function::meta_BinaryOperator_children.target() = ::GOAL::BinaryOperator::meta;
		}
		void InitComposition11()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::Return::meta_Function_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::Return::meta_Function_parent.name() = "Function_parent";
			::GOAL::Return::meta_Function_parent.isNavigable() = true;
			::GOAL::Return::meta_Function_parent.target() = ::GOAL::Function::meta;
			::GOAL::Function::meta_Return_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::Function::meta_Return_children.name() = "Return";
			::GOAL::Function::meta_Return_children.min() = 0;
			::GOAL::Function::meta_Return_children.max() = -1;
			::GOAL::Function::meta_Return_children.isNavigable() = true;
			::GOAL::Function::meta_Return_children.target() = ::GOAL::Return::meta;
		}
		void InitComposition12()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::UnaryOperator::meta_Function_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::UnaryOperator::meta_Function_parent.name() = "Function_parent";
			::GOAL::UnaryOperator::meta_Function_parent.isNavigable() = true;
			::GOAL::UnaryOperator::meta_Function_parent.target() = ::GOAL::Function::meta;
			::GOAL::Function::meta_UnaryOperator_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::Function::meta_UnaryOperator_children.name() = "UnaryOperator";
			::GOAL::Function::meta_UnaryOperator_children.min() = 0;
			::GOAL::Function::meta_UnaryOperator_children.max() = -1;
			::GOAL::Function::meta_UnaryOperator_children.isNavigable() = true;
			::GOAL::Function::meta_UnaryOperator_children.target() = ::GOAL::UnaryOperator::meta;
		}
		void InitComposition13()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::InfixOperators::meta_Function_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::InfixOperators::meta_Function_parent.name() = "Function_parent";
			::GOAL::InfixOperators::meta_Function_parent.isNavigable() = true;
			::GOAL::InfixOperators::meta_Function_parent.target() = ::GOAL::Function::meta;
			::GOAL::Function::meta_InfixOperators_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::Function::meta_InfixOperators_children.name() = "InfixOperators";
			::GOAL::Function::meta_InfixOperators_children.min() = 0;
			::GOAL::Function::meta_InfixOperators_children.max() = -1;
			::GOAL::Function::meta_InfixOperators_children.isNavigable() = true;
			::GOAL::Function::meta_InfixOperators_children.target() = ::GOAL::InfixOperators::meta;
		}
		void InitComposition14()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::FunctionCall::meta_Function_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::FunctionCall::meta_Function_parent.name() = "Function_parent";
			::GOAL::FunctionCall::meta_Function_parent.isNavigable() = true;
			::GOAL::FunctionCall::meta_Function_parent.target() = ::GOAL::Function::meta;
			::GOAL::Function::meta_FunctionCall_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::Function::meta_FunctionCall_children.name() = "FunctionCall";
			::GOAL::Function::meta_FunctionCall_children.min() = 0;
			::GOAL::Function::meta_FunctionCall_children.max() = -1;
			::GOAL::Function::meta_FunctionCall_children.isNavigable() = true;
			::GOAL::Function::meta_FunctionCall_children.target() = ::GOAL::FunctionCall::meta;
		}
		void InitComposition15()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::IndexOperator::meta_Function_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::IndexOperator::meta_Function_parent.name() = "Function_parent";
			::GOAL::IndexOperator::meta_Function_parent.isNavigable() = true;
			::GOAL::IndexOperator::meta_Function_parent.target() = ::GOAL::Function::meta;
			::GOAL::Function::meta_IndexOperator_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::Function::meta_IndexOperator_children.name() = "IndexOperator";
			::GOAL::Function::meta_IndexOperator_children.min() = 0;
			::GOAL::Function::meta_IndexOperator_children.max() = -1;
			::GOAL::Function::meta_IndexOperator_children.isNavigable() = true;
			::GOAL::Function::meta_IndexOperator_children.target() = ::GOAL::IndexOperator::meta;
		}
		void InitComposition16()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::UnaryOperator::meta_IndexOperator_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::UnaryOperator::meta_IndexOperator_parent.name() = "IndexOperator_parent";
			::GOAL::UnaryOperator::meta_IndexOperator_parent.isNavigable() = true;
			::GOAL::UnaryOperator::meta_IndexOperator_parent.target() = ::GOAL::IndexOperator::meta;
			::GOAL::IndexOperator::meta_UnaryOperator_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::IndexOperator::meta_UnaryOperator_children.name() = "UnaryOperator";
			::GOAL::IndexOperator::meta_UnaryOperator_children.min() = 0;
			::GOAL::IndexOperator::meta_UnaryOperator_children.max() = -1;
			::GOAL::IndexOperator::meta_UnaryOperator_children.isNavigable() = true;
			::GOAL::IndexOperator::meta_UnaryOperator_children.target() = ::GOAL::UnaryOperator::meta;
		}
		void InitComposition17()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::BinaryOperator::meta_IndexOperator_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::BinaryOperator::meta_IndexOperator_parent.name() = "IndexOperator_parent";
			::GOAL::BinaryOperator::meta_IndexOperator_parent.isNavigable() = true;
			::GOAL::BinaryOperator::meta_IndexOperator_parent.target() = ::GOAL::IndexOperator::meta;
			::GOAL::IndexOperator::meta_BinaryOperator_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::IndexOperator::meta_BinaryOperator_children.name() = "BinaryOperator";
			::GOAL::IndexOperator::meta_BinaryOperator_children.min() = 0;
			::GOAL::IndexOperator::meta_BinaryOperator_children.max() = -1;
			::GOAL::IndexOperator::meta_BinaryOperator_children.isNavigable() = true;
			::GOAL::IndexOperator::meta_BinaryOperator_children.target() = ::GOAL::BinaryOperator::meta;
		}
		void InitComposition18()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::ConstBase::meta_IndexOperator_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::ConstBase::meta_IndexOperator_parent.name() = "IndexOperator_parent";
			::GOAL::ConstBase::meta_IndexOperator_parent.isNavigable() = true;
			::GOAL::ConstBase::meta_IndexOperator_parent.target() = ::GOAL::IndexOperator::meta;
			::GOAL::IndexOperator::meta_ConstBase_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::IndexOperator::meta_ConstBase_children.name() = "ConstBase";
			::GOAL::IndexOperator::meta_ConstBase_children.min() = 0;
			::GOAL::IndexOperator::meta_ConstBase_children.max() = -1;
			::GOAL::IndexOperator::meta_ConstBase_children.isNavigable() = true;
			::GOAL::IndexOperator::meta_ConstBase_children.target() = ::GOAL::ConstBase::meta;
		}
		void InitComposition19()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::Input::meta_IndexOperator_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::Input::meta_IndexOperator_parent.name() = "IndexOperator_parent";
			::GOAL::Input::meta_IndexOperator_parent.isNavigable() = true;
			::GOAL::Input::meta_IndexOperator_parent.target() = ::GOAL::IndexOperator::meta;
			::GOAL::IndexOperator::meta_Input_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::IndexOperator::meta_Input_children.name() = "Input";
			::GOAL::IndexOperator::meta_Input_children.min() = 0;
			::GOAL::IndexOperator::meta_Input_children.max() = -1;
			::GOAL::IndexOperator::meta_Input_children.isNavigable() = true;
			::GOAL::IndexOperator::meta_Input_children.target() = ::GOAL::Input::meta;
		}
		void InitComposition20()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::IndexOperator::meta_IndexOperator_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::IndexOperator::meta_IndexOperator_parent.name() = "IndexOperator_parent";
			::GOAL::IndexOperator::meta_IndexOperator_parent.isNavigable() = true;
			::GOAL::IndexOperator::meta_IndexOperator_parent.target() = ::GOAL::IndexOperator::meta;
			::GOAL::IndexOperator::meta_IndexOperator_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::IndexOperator::meta_IndexOperator_children.name() = "IndexOperator";
			::GOAL::IndexOperator::meta_IndexOperator_children.min() = 0;
			::GOAL::IndexOperator::meta_IndexOperator_children.max() = -1;
			::GOAL::IndexOperator::meta_IndexOperator_children.isNavigable() = true;
			::GOAL::IndexOperator::meta_IndexOperator_children.target() = ::GOAL::IndexOperator::meta;
		}
		void InitComposition21()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::FunctionCall::meta_IndexOperator_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::FunctionCall::meta_IndexOperator_parent.name() = "IndexOperator_parent";
			::GOAL::FunctionCall::meta_IndexOperator_parent.isNavigable() = true;
			::GOAL::FunctionCall::meta_IndexOperator_parent.target() = ::GOAL::IndexOperator::meta;
			::GOAL::IndexOperator::meta_FunctionCall_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::IndexOperator::meta_FunctionCall_children.name() = "FunctionCall";
			::GOAL::IndexOperator::meta_FunctionCall_children.min() = 0;
			::GOAL::IndexOperator::meta_FunctionCall_children.max() = -1;
			::GOAL::IndexOperator::meta_FunctionCall_children.isNavigable() = true;
			::GOAL::IndexOperator::meta_FunctionCall_children.target() = ::GOAL::FunctionCall::meta;
		}
		void InitComposition22()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::InputOutput::meta_IndexOperator_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::InputOutput::meta_IndexOperator_parent.name() = "IndexOperator_parent";
			::GOAL::InputOutput::meta_IndexOperator_parent.isNavigable() = true;
			::GOAL::InputOutput::meta_IndexOperator_parent.target() = ::GOAL::IndexOperator::meta;
			::GOAL::IndexOperator::meta_InputOutput_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::IndexOperator::meta_InputOutput_children.name() = "InputOutput";
			::GOAL::IndexOperator::meta_InputOutput_children.min() = 0;
			::GOAL::IndexOperator::meta_InputOutput_children.max() = -1;
			::GOAL::IndexOperator::meta_InputOutput_children.isNavigable() = true;
			::GOAL::IndexOperator::meta_InputOutput_children.target() = ::GOAL::InputOutput::meta;
		}
		void InitComposition23()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::BooleanOperators::meta_IndexOperator_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::BooleanOperators::meta_IndexOperator_parent.name() = "IndexOperator_parent";
			::GOAL::BooleanOperators::meta_IndexOperator_parent.isNavigable() = true;
			::GOAL::BooleanOperators::meta_IndexOperator_parent.target() = ::GOAL::IndexOperator::meta;
			::GOAL::IndexOperator::meta_BooleanOperators_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::IndexOperator::meta_BooleanOperators_children.name() = "BooleanOperators";
			::GOAL::IndexOperator::meta_BooleanOperators_children.min() = 0;
			::GOAL::IndexOperator::meta_BooleanOperators_children.max() = -1;
			::GOAL::IndexOperator::meta_BooleanOperators_children.isNavigable() = true;
			::GOAL::IndexOperator::meta_BooleanOperators_children.target() = ::GOAL::BooleanOperators::meta;
		}
		void InitComposition24()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::Variable::meta_IndexOperator_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::Variable::meta_IndexOperator_parent.name() = "IndexOperator_parent";
			::GOAL::Variable::meta_IndexOperator_parent.isNavigable() = true;
			::GOAL::Variable::meta_IndexOperator_parent.target() = ::GOAL::IndexOperator::meta;
			::GOAL::IndexOperator::meta_Variable_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::IndexOperator::meta_Variable_children.name() = "Variable";
			::GOAL::IndexOperator::meta_Variable_children.min() = 0;
			::GOAL::IndexOperator::meta_Variable_children.max() = -1;
			::GOAL::IndexOperator::meta_Variable_children.isNavigable() = true;
			::GOAL::IndexOperator::meta_Variable_children.target() = ::GOAL::Variable::meta;
		}
		void InitComposition25()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::CommonConnection::meta_IndexOperator_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::CommonConnection::meta_IndexOperator_parent.name() = "IndexOperator_parent";
			::GOAL::CommonConnection::meta_IndexOperator_parent.isNavigable() = true;
			::GOAL::CommonConnection::meta_IndexOperator_parent.target() = ::GOAL::IndexOperator::meta;
			::GOAL::IndexOperator::meta_CommonConnection_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::IndexOperator::meta_CommonConnection_children.name() = "CommonConnection";
			::GOAL::IndexOperator::meta_CommonConnection_children.min() = 0;
			::GOAL::IndexOperator::meta_CommonConnection_children.max() = -1;
			::GOAL::IndexOperator::meta_CommonConnection_children.isNavigable() = true;
			::GOAL::IndexOperator::meta_CommonConnection_children.target() = ::GOAL::CommonConnection::meta;
		}
		void InitComposition26()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::ComposableBase::meta_Argument_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::ComposableBase::meta_Argument_parent.name() = "Argument_parent";
			::GOAL::ComposableBase::meta_Argument_parent.isNavigable() = true;
			::GOAL::ComposableBase::meta_Argument_parent.target() = ::GOAL::Argument::meta;
			::GOAL::Argument::meta_ComposableBase_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::Argument::meta_ComposableBase_children.name() = "ComposableBase";
			::GOAL::Argument::meta_ComposableBase_children.min() = 0;
			::GOAL::Argument::meta_ComposableBase_children.max() = -1;
			::GOAL::Argument::meta_ComposableBase_children.isNavigable() = true;
			::GOAL::Argument::meta_ComposableBase_children.target() = ::GOAL::ComposableBase::meta;
		}
		void InitComposition27()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::CodeAdapter::meta_For_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::CodeAdapter::meta_For_parent.name() = "For_parent";
			::GOAL::CodeAdapter::meta_For_parent.isNavigable() = true;
			::GOAL::CodeAdapter::meta_For_parent.target() = ::GOAL::For::meta;
			::GOAL::For::meta_CodeAdapter_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::For::meta_CodeAdapter_children.name() = "CodeAdapter";
			::GOAL::For::meta_CodeAdapter_children.min() = 0;
			::GOAL::For::meta_CodeAdapter_children.max() = -1;
			::GOAL::For::meta_CodeAdapter_children.isNavigable() = true;
			::GOAL::For::meta_CodeAdapter_children.target() = ::GOAL::CodeAdapter::meta;
		}
		void InitComposition28()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::ConditionsAdapter::meta_For_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::ConditionsAdapter::meta_For_parent.name() = "For_parent";
			::GOAL::ConditionsAdapter::meta_For_parent.isNavigable() = true;
			::GOAL::ConditionsAdapter::meta_For_parent.target() = ::GOAL::For::meta;
			::GOAL::For::meta_ConditionsAdapter_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::For::meta_ConditionsAdapter_children.name() = "ConditionsAdapter";
			::GOAL::For::meta_ConditionsAdapter_children.min() = 0;
			::GOAL::For::meta_ConditionsAdapter_children.max() = -1;
			::GOAL::For::meta_ConditionsAdapter_children.isNavigable() = true;
			::GOAL::For::meta_ConditionsAdapter_children.target() = ::GOAL::ConditionsAdapter::meta;
		}
		void InitComposition29()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::ComposableBase::meta_ClassMember_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::ComposableBase::meta_ClassMember_parent.name() = "ClassMember_parent";
			::GOAL::ComposableBase::meta_ClassMember_parent.isNavigable() = true;
			::GOAL::ComposableBase::meta_ClassMember_parent.target() = ::GOAL::ClassMember::meta;
			::GOAL::ClassMember::meta_ComposableBase_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::ClassMember::meta_ComposableBase_children.name() = "ComposableBase";
			::GOAL::ClassMember::meta_ComposableBase_children.min() = 0;
			::GOAL::ClassMember::meta_ComposableBase_children.max() = -1;
			::GOAL::ClassMember::meta_ComposableBase_children.isNavigable() = true;
			::GOAL::ClassMember::meta_ComposableBase_children.target() = ::GOAL::ComposableBase::meta;
		}
		void InitComposition30()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::CommonConnection::meta_CodeAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::CommonConnection::meta_CodeAdapter_parent.name() = "CodeAdapter_parent";
			::GOAL::CommonConnection::meta_CodeAdapter_parent.isNavigable() = true;
			::GOAL::CommonConnection::meta_CodeAdapter_parent.target() = ::GOAL::CodeAdapter::meta;
			::GOAL::CodeAdapter::meta_CommonConnection_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::CodeAdapter::meta_CommonConnection_children.name() = "CommonConnection";
			::GOAL::CodeAdapter::meta_CommonConnection_children.min() = 0;
			::GOAL::CodeAdapter::meta_CommonConnection_children.max() = -1;
			::GOAL::CodeAdapter::meta_CommonConnection_children.isNavigable() = true;
			::GOAL::CodeAdapter::meta_CommonConnection_children.target() = ::GOAL::CommonConnection::meta;
		}
		void InitComposition31()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::FunctionCall::meta_CodeAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::FunctionCall::meta_CodeAdapter_parent.name() = "CodeAdapter_parent";
			::GOAL::FunctionCall::meta_CodeAdapter_parent.isNavigable() = true;
			::GOAL::FunctionCall::meta_CodeAdapter_parent.target() = ::GOAL::CodeAdapter::meta;
			::GOAL::CodeAdapter::meta_FunctionCall_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::CodeAdapter::meta_FunctionCall_children.name() = "FunctionCall";
			::GOAL::CodeAdapter::meta_FunctionCall_children.min() = 0;
			::GOAL::CodeAdapter::meta_FunctionCall_children.max() = -1;
			::GOAL::CodeAdapter::meta_FunctionCall_children.isNavigable() = true;
			::GOAL::CodeAdapter::meta_FunctionCall_children.target() = ::GOAL::FunctionCall::meta;
		}
		void InitComposition32()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::InfixOperators::meta_CodeAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::InfixOperators::meta_CodeAdapter_parent.name() = "CodeAdapter_parent";
			::GOAL::InfixOperators::meta_CodeAdapter_parent.isNavigable() = true;
			::GOAL::InfixOperators::meta_CodeAdapter_parent.target() = ::GOAL::CodeAdapter::meta;
			::GOAL::CodeAdapter::meta_InfixOperators_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::CodeAdapter::meta_InfixOperators_children.name() = "InfixOperators";
			::GOAL::CodeAdapter::meta_InfixOperators_children.min() = 0;
			::GOAL::CodeAdapter::meta_InfixOperators_children.max() = -1;
			::GOAL::CodeAdapter::meta_InfixOperators_children.isNavigable() = true;
			::GOAL::CodeAdapter::meta_InfixOperators_children.target() = ::GOAL::InfixOperators::meta;
		}
		void InitComposition33()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::BinaryOperator::meta_CodeAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::BinaryOperator::meta_CodeAdapter_parent.name() = "CodeAdapter_parent";
			::GOAL::BinaryOperator::meta_CodeAdapter_parent.isNavigable() = true;
			::GOAL::BinaryOperator::meta_CodeAdapter_parent.target() = ::GOAL::CodeAdapter::meta;
			::GOAL::CodeAdapter::meta_BinaryOperator_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::CodeAdapter::meta_BinaryOperator_children.name() = "BinaryOperator";
			::GOAL::CodeAdapter::meta_BinaryOperator_children.min() = 0;
			::GOAL::CodeAdapter::meta_BinaryOperator_children.max() = -1;
			::GOAL::CodeAdapter::meta_BinaryOperator_children.isNavigable() = true;
			::GOAL::CodeAdapter::meta_BinaryOperator_children.target() = ::GOAL::BinaryOperator::meta;
		}
		void InitComposition34()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::UnaryOperator::meta_CodeAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::UnaryOperator::meta_CodeAdapter_parent.name() = "CodeAdapter_parent";
			::GOAL::UnaryOperator::meta_CodeAdapter_parent.isNavigable() = true;
			::GOAL::UnaryOperator::meta_CodeAdapter_parent.target() = ::GOAL::CodeAdapter::meta;
			::GOAL::CodeAdapter::meta_UnaryOperator_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::CodeAdapter::meta_UnaryOperator_children.name() = "UnaryOperator";
			::GOAL::CodeAdapter::meta_UnaryOperator_children.min() = 0;
			::GOAL::CodeAdapter::meta_UnaryOperator_children.max() = -1;
			::GOAL::CodeAdapter::meta_UnaryOperator_children.isNavigable() = true;
			::GOAL::CodeAdapter::meta_UnaryOperator_children.target() = ::GOAL::UnaryOperator::meta;
		}
		void InitComposition35()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::ConstBase::meta_CodeAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::ConstBase::meta_CodeAdapter_parent.name() = "CodeAdapter_parent";
			::GOAL::ConstBase::meta_CodeAdapter_parent.isNavigable() = true;
			::GOAL::ConstBase::meta_CodeAdapter_parent.target() = ::GOAL::CodeAdapter::meta;
			::GOAL::CodeAdapter::meta_ConstBase_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::CodeAdapter::meta_ConstBase_children.name() = "ConstBase";
			::GOAL::CodeAdapter::meta_ConstBase_children.min() = 0;
			::GOAL::CodeAdapter::meta_ConstBase_children.max() = -1;
			::GOAL::CodeAdapter::meta_ConstBase_children.isNavigable() = true;
			::GOAL::CodeAdapter::meta_ConstBase_children.target() = ::GOAL::ConstBase::meta;
		}
		void InitComposition36()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::IndexOperator::meta_CodeAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::IndexOperator::meta_CodeAdapter_parent.name() = "CodeAdapter_parent";
			::GOAL::IndexOperator::meta_CodeAdapter_parent.isNavigable() = true;
			::GOAL::IndexOperator::meta_CodeAdapter_parent.target() = ::GOAL::CodeAdapter::meta;
			::GOAL::CodeAdapter::meta_IndexOperator_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::CodeAdapter::meta_IndexOperator_children.name() = "IndexOperator";
			::GOAL::CodeAdapter::meta_IndexOperator_children.min() = 0;
			::GOAL::CodeAdapter::meta_IndexOperator_children.max() = -1;
			::GOAL::CodeAdapter::meta_IndexOperator_children.isNavigable() = true;
			::GOAL::CodeAdapter::meta_IndexOperator_children.target() = ::GOAL::IndexOperator::meta;
		}
		void InitComposition37()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::IOBase::meta_CodeAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::IOBase::meta_CodeAdapter_parent.name() = "CodeAdapter_parent";
			::GOAL::IOBase::meta_CodeAdapter_parent.isNavigable() = true;
			::GOAL::IOBase::meta_CodeAdapter_parent.target() = ::GOAL::CodeAdapter::meta;
			::GOAL::CodeAdapter::meta_IOBase_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::CodeAdapter::meta_IOBase_children.name() = "IOBase";
			::GOAL::CodeAdapter::meta_IOBase_children.min() = 0;
			::GOAL::CodeAdapter::meta_IOBase_children.max() = -1;
			::GOAL::CodeAdapter::meta_IOBase_children.isNavigable() = true;
			::GOAL::CodeAdapter::meta_IOBase_children.target() = ::GOAL::IOBase::meta;
		}
		void InitComposition38()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::CodeAdapter::meta_CodeAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::CodeAdapter::meta_CodeAdapter_parent.name() = "CodeAdapter_parent";
			::GOAL::CodeAdapter::meta_CodeAdapter_parent.isNavigable() = true;
			::GOAL::CodeAdapter::meta_CodeAdapter_parent.target() = ::GOAL::CodeAdapter::meta;
			::GOAL::CodeAdapter::meta_CodeAdapter_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::CodeAdapter::meta_CodeAdapter_children.name() = "CodeAdapter";
			::GOAL::CodeAdapter::meta_CodeAdapter_children.min() = 0;
			::GOAL::CodeAdapter::meta_CodeAdapter_children.max() = -1;
			::GOAL::CodeAdapter::meta_CodeAdapter_children.isNavigable() = true;
			::GOAL::CodeAdapter::meta_CodeAdapter_children.target() = ::GOAL::CodeAdapter::meta;
		}
		void InitComposition39()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::AccumulatorBase::meta_CodeAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::AccumulatorBase::meta_CodeAdapter_parent.name() = "CodeAdapter_parent";
			::GOAL::AccumulatorBase::meta_CodeAdapter_parent.isNavigable() = true;
			::GOAL::AccumulatorBase::meta_CodeAdapter_parent.target() = ::GOAL::CodeAdapter::meta;
			::GOAL::CodeAdapter::meta_AccumulatorBase_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::CodeAdapter::meta_AccumulatorBase_children.name() = "AccumulatorBase";
			::GOAL::CodeAdapter::meta_AccumulatorBase_children.min() = 0;
			::GOAL::CodeAdapter::meta_AccumulatorBase_children.max() = -1;
			::GOAL::CodeAdapter::meta_AccumulatorBase_children.isNavigable() = true;
			::GOAL::CodeAdapter::meta_AccumulatorBase_children.target() = ::GOAL::AccumulatorBase::meta;
		}
		void InitComposition40()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::BooleanOperators::meta_CodeAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::BooleanOperators::meta_CodeAdapter_parent.name() = "CodeAdapter_parent";
			::GOAL::BooleanOperators::meta_CodeAdapter_parent.isNavigable() = true;
			::GOAL::BooleanOperators::meta_CodeAdapter_parent.target() = ::GOAL::CodeAdapter::meta;
			::GOAL::CodeAdapter::meta_BooleanOperators_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::CodeAdapter::meta_BooleanOperators_children.name() = "BooleanOperators";
			::GOAL::CodeAdapter::meta_BooleanOperators_children.min() = 0;
			::GOAL::CodeAdapter::meta_BooleanOperators_children.max() = -1;
			::GOAL::CodeAdapter::meta_BooleanOperators_children.isNavigable() = true;
			::GOAL::CodeAdapter::meta_BooleanOperators_children.target() = ::GOAL::BooleanOperators::meta;
		}
		void InitComposition41()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::ControlBase::meta_CodeAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::ControlBase::meta_CodeAdapter_parent.name() = "CodeAdapter_parent";
			::GOAL::ControlBase::meta_CodeAdapter_parent.isNavigable() = true;
			::GOAL::ControlBase::meta_CodeAdapter_parent.target() = ::GOAL::CodeAdapter::meta;
			::GOAL::CodeAdapter::meta_ControlBase_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::CodeAdapter::meta_ControlBase_children.name() = "ControlBase";
			::GOAL::CodeAdapter::meta_ControlBase_children.min() = 0;
			::GOAL::CodeAdapter::meta_ControlBase_children.max() = -1;
			::GOAL::CodeAdapter::meta_ControlBase_children.isNavigable() = true;
			::GOAL::CodeAdapter::meta_ControlBase_children.target() = ::GOAL::ControlBase::meta;
		}
		void InitComposition42()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::Variable::meta_CodeAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::Variable::meta_CodeAdapter_parent.name() = "CodeAdapter_parent";
			::GOAL::Variable::meta_CodeAdapter_parent.isNavigable() = true;
			::GOAL::Variable::meta_CodeAdapter_parent.target() = ::GOAL::CodeAdapter::meta;
			::GOAL::CodeAdapter::meta_Variable_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::CodeAdapter::meta_Variable_children.name() = "Variable";
			::GOAL::CodeAdapter::meta_Variable_children.min() = 0;
			::GOAL::CodeAdapter::meta_Variable_children.max() = -1;
			::GOAL::CodeAdapter::meta_Variable_children.isNavigable() = true;
			::GOAL::CodeAdapter::meta_Variable_children.target() = ::GOAL::Variable::meta;
		}
		void InitComposition43()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::ConditionsAdapter::meta_If_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::ConditionsAdapter::meta_If_parent.name() = "If_parent";
			::GOAL::ConditionsAdapter::meta_If_parent.isNavigable() = true;
			::GOAL::ConditionsAdapter::meta_If_parent.target() = ::GOAL::If::meta;
			::GOAL::If::meta_ConditionsAdapter_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::If::meta_ConditionsAdapter_children.name() = "ConditionsAdapter";
			::GOAL::If::meta_ConditionsAdapter_children.min() = 0;
			::GOAL::If::meta_ConditionsAdapter_children.max() = -1;
			::GOAL::If::meta_ConditionsAdapter_children.isNavigable() = true;
			::GOAL::If::meta_ConditionsAdapter_children.target() = ::GOAL::ConditionsAdapter::meta;
		}
		void InitComposition44()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::CodeAdapter::meta_If_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::CodeAdapter::meta_If_parent.name() = "If_parent";
			::GOAL::CodeAdapter::meta_If_parent.isNavigable() = true;
			::GOAL::CodeAdapter::meta_If_parent.target() = ::GOAL::If::meta;
			::GOAL::If::meta_CodeAdapter_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::If::meta_CodeAdapter_children.name() = "CodeAdapter";
			::GOAL::If::meta_CodeAdapter_children.min() = 0;
			::GOAL::If::meta_CodeAdapter_children.max() = -1;
			::GOAL::If::meta_CodeAdapter_children.isNavigable() = true;
			::GOAL::If::meta_CodeAdapter_children.target() = ::GOAL::CodeAdapter::meta;
		}
		void InitComposition45()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::CodeAdapter::meta_While_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::CodeAdapter::meta_While_parent.name() = "While_parent";
			::GOAL::CodeAdapter::meta_While_parent.isNavigable() = true;
			::GOAL::CodeAdapter::meta_While_parent.target() = ::GOAL::While::meta;
			::GOAL::While::meta_CodeAdapter_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::While::meta_CodeAdapter_children.name() = "CodeAdapter";
			::GOAL::While::meta_CodeAdapter_children.min() = 0;
			::GOAL::While::meta_CodeAdapter_children.max() = -1;
			::GOAL::While::meta_CodeAdapter_children.isNavigable() = true;
			::GOAL::While::meta_CodeAdapter_children.target() = ::GOAL::CodeAdapter::meta;
		}
		void InitComposition46()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::ConditionsAdapter::meta_While_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::ConditionsAdapter::meta_While_parent.name() = "While_parent";
			::GOAL::ConditionsAdapter::meta_While_parent.isNavigable() = true;
			::GOAL::ConditionsAdapter::meta_While_parent.target() = ::GOAL::While::meta;
			::GOAL::While::meta_ConditionsAdapter_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::While::meta_ConditionsAdapter_children.name() = "ConditionsAdapter";
			::GOAL::While::meta_ConditionsAdapter_children.min() = 0;
			::GOAL::While::meta_ConditionsAdapter_children.max() = -1;
			::GOAL::While::meta_ConditionsAdapter_children.isNavigable() = true;
			::GOAL::While::meta_ConditionsAdapter_children.target() = ::GOAL::ConditionsAdapter::meta;
		}
		void InitComposition47()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::ClassMember::meta_ClassAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::ClassMember::meta_ClassAdapter_parent.name() = "ClassAdapter_parent";
			::GOAL::ClassMember::meta_ClassAdapter_parent.isNavigable() = true;
			::GOAL::ClassMember::meta_ClassAdapter_parent.target() = ::GOAL::ClassAdapter::meta;
			::GOAL::ClassAdapter::meta_ClassMember_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::ClassAdapter::meta_ClassMember_children.name() = "ClassMember";
			::GOAL::ClassAdapter::meta_ClassMember_children.min() = 0;
			::GOAL::ClassAdapter::meta_ClassMember_children.max() = -1;
			::GOAL::ClassAdapter::meta_ClassMember_children.isNavigable() = true;
			::GOAL::ClassAdapter::meta_ClassMember_children.target() = ::GOAL::ClassMember::meta;
		}
		void InitComposition48()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::ClassConnection::meta_ClassAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::ClassConnection::meta_ClassAdapter_parent.name() = "ClassAdapter_parent";
			::GOAL::ClassConnection::meta_ClassAdapter_parent.isNavigable() = true;
			::GOAL::ClassConnection::meta_ClassAdapter_parent.target() = ::GOAL::ClassAdapter::meta;
			::GOAL::ClassAdapter::meta_ClassConnection_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::ClassAdapter::meta_ClassConnection_children.name() = "ClassConnection";
			::GOAL::ClassAdapter::meta_ClassConnection_children.min() = 0;
			::GOAL::ClassAdapter::meta_ClassConnection_children.max() = -1;
			::GOAL::ClassAdapter::meta_ClassConnection_children.isNavigable() = true;
			::GOAL::ClassAdapter::meta_ClassConnection_children.target() = ::GOAL::ClassConnection::meta;
		}
		void InitComposition49()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::ConstBase::meta_ClassAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::ConstBase::meta_ClassAdapter_parent.name() = "ClassAdapter_parent";
			::GOAL::ConstBase::meta_ClassAdapter_parent.isNavigable() = true;
			::GOAL::ConstBase::meta_ClassAdapter_parent.target() = ::GOAL::ClassAdapter::meta;
			::GOAL::ClassAdapter::meta_ConstBase_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::ClassAdapter::meta_ConstBase_children.name() = "ConstBase";
			::GOAL::ClassAdapter::meta_ConstBase_children.min() = 0;
			::GOAL::ClassAdapter::meta_ConstBase_children.max() = -1;
			::GOAL::ClassAdapter::meta_ConstBase_children.isNavigable() = true;
			::GOAL::ClassAdapter::meta_ConstBase_children.target() = ::GOAL::ConstBase::meta;
		}
		void InitComposition50()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::Class::meta_ClassAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::Class::meta_ClassAdapter_parent.name() = "ClassAdapter_parent";
			::GOAL::Class::meta_ClassAdapter_parent.isNavigable() = true;
			::GOAL::Class::meta_ClassAdapter_parent.target() = ::GOAL::ClassAdapter::meta;
			::GOAL::ClassAdapter::meta_Class_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::ClassAdapter::meta_Class_children.name() = "Class";
			::GOAL::ClassAdapter::meta_Class_children.min() = 0;
			::GOAL::ClassAdapter::meta_Class_children.max() = -1;
			::GOAL::ClassAdapter::meta_Class_children.isNavigable() = true;
			::GOAL::ClassAdapter::meta_Class_children.target() = ::GOAL::Class::meta;
		}
		void InitComposition51()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::Function::meta_ClassAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::Function::meta_ClassAdapter_parent.name() = "ClassAdapter_parent";
			::GOAL::Function::meta_ClassAdapter_parent.isNavigable() = true;
			::GOAL::Function::meta_ClassAdapter_parent.target() = ::GOAL::ClassAdapter::meta;
			::GOAL::ClassAdapter::meta_Function_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::ClassAdapter::meta_Function_children.name() = "Function";
			::GOAL::ClassAdapter::meta_Function_children.min() = 0;
			::GOAL::ClassAdapter::meta_Function_children.max() = -1;
			::GOAL::ClassAdapter::meta_Function_children.isNavigable() = true;
			::GOAL::ClassAdapter::meta_Function_children.target() = ::GOAL::Function::meta;
		}
		void InitComposition52()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::Const::meta_Array_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::Const::meta_Array_parent.name() = "Array_parent";
			::GOAL::Const::meta_Array_parent.isNavigable() = true;
			::GOAL::Const::meta_Array_parent.target() = ::GOAL::Array::meta;
			::GOAL::Array::meta_Const_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::Array::meta_Const_children.name() = "Const";
			::GOAL::Array::meta_Const_children.min() = 0;
			::GOAL::Array::meta_Const_children.max() = -1;
			::GOAL::Array::meta_Const_children.isNavigable() = true;
			::GOAL::Array::meta_Const_children.target() = ::GOAL::Const::meta;
		}
		void InitComposition53()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::ComposableBase::meta_Array_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::ComposableBase::meta_Array_parent.name() = "Array_parent";
			::GOAL::ComposableBase::meta_Array_parent.isNavigable() = true;
			::GOAL::ComposableBase::meta_Array_parent.target() = ::GOAL::Array::meta;
			::GOAL::Array::meta_ComposableBase_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::Array::meta_ComposableBase_children.name() = "ComposableBase";
			::GOAL::Array::meta_ComposableBase_children.min() = 0;
			::GOAL::Array::meta_ComposableBase_children.max() = -1;
			::GOAL::Array::meta_ComposableBase_children.isNavigable() = true;
			::GOAL::Array::meta_ComposableBase_children.target() = ::GOAL::ComposableBase::meta;
		}
		void InitComposition54()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::ComposableBase::meta_Const_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::ComposableBase::meta_Const_parent.name() = "Const_parent";
			::GOAL::ComposableBase::meta_Const_parent.isNavigable() = true;
			::GOAL::ComposableBase::meta_Const_parent.target() = ::GOAL::Const::meta;
			::GOAL::Const::meta_ComposableBase_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::Const::meta_ComposableBase_children.name() = "ComposableBase";
			::GOAL::Const::meta_ComposableBase_children.min() = 0;
			::GOAL::Const::meta_ComposableBase_children.max() = -1;
			::GOAL::Const::meta_ComposableBase_children.isNavigable() = true;
			::GOAL::Const::meta_ComposableBase_children.target() = ::GOAL::ComposableBase::meta;
		}
		void InitComposition55()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::VariableRef::meta_VariableBase_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::VariableRef::meta_VariableBase_parent.name() = "VariableBase_parent";
			::GOAL::VariableRef::meta_VariableBase_parent.isNavigable() = true;
			::GOAL::VariableRef::meta_VariableBase_parent.target() = ::GOAL::VariableBase::meta;
			::GOAL::VariableBase::meta_VariableRef_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::VariableBase::meta_VariableRef_children.name() = "VariableRef";
			::GOAL::VariableBase::meta_VariableRef_children.min() = 0;
			::GOAL::VariableBase::meta_VariableRef_children.max() = -1;
			::GOAL::VariableBase::meta_VariableRef_children.isNavigable() = true;
			::GOAL::VariableBase::meta_VariableRef_children.target() = ::GOAL::VariableRef::meta;
		}
		void InitComposition56()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::ComposableBase::meta_VariableBase_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::ComposableBase::meta_VariableBase_parent.name() = "VariableBase_parent";
			::GOAL::ComposableBase::meta_VariableBase_parent.isNavigable() = true;
			::GOAL::ComposableBase::meta_VariableBase_parent.target() = ::GOAL::VariableBase::meta;
			::GOAL::VariableBase::meta_ComposableBase_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::VariableBase::meta_ComposableBase_children.name() = "ComposableBase";
			::GOAL::VariableBase::meta_ComposableBase_children.min() = 0;
			::GOAL::VariableBase::meta_ComposableBase_children.max() = -1;
			::GOAL::VariableBase::meta_ComposableBase_children.isNavigable() = true;
			::GOAL::VariableBase::meta_ComposableBase_children.target() = ::GOAL::ComposableBase::meta;
		}
		void InitComposition57()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::IndexOperator::meta_ConditionsAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::IndexOperator::meta_ConditionsAdapter_parent.name() = "ConditionsAdapter_parent";
			::GOAL::IndexOperator::meta_ConditionsAdapter_parent.isNavigable() = true;
			::GOAL::IndexOperator::meta_ConditionsAdapter_parent.target() = ::GOAL::ConditionsAdapter::meta;
			::GOAL::ConditionsAdapter::meta_IndexOperator_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::ConditionsAdapter::meta_IndexOperator_children.name() = "IndexOperator";
			::GOAL::ConditionsAdapter::meta_IndexOperator_children.min() = 0;
			::GOAL::ConditionsAdapter::meta_IndexOperator_children.max() = -1;
			::GOAL::ConditionsAdapter::meta_IndexOperator_children.isNavigable() = true;
			::GOAL::ConditionsAdapter::meta_IndexOperator_children.target() = ::GOAL::IndexOperator::meta;
		}
		void InitComposition58()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::BooleanOperators::meta_ConditionsAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::BooleanOperators::meta_ConditionsAdapter_parent.name() = "ConditionsAdapter_parent";
			::GOAL::BooleanOperators::meta_ConditionsAdapter_parent.isNavigable() = true;
			::GOAL::BooleanOperators::meta_ConditionsAdapter_parent.target() = ::GOAL::ConditionsAdapter::meta;
			::GOAL::ConditionsAdapter::meta_BooleanOperators_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::ConditionsAdapter::meta_BooleanOperators_children.name() = "BooleanOperators";
			::GOAL::ConditionsAdapter::meta_BooleanOperators_children.min() = 0;
			::GOAL::ConditionsAdapter::meta_BooleanOperators_children.max() = -1;
			::GOAL::ConditionsAdapter::meta_BooleanOperators_children.isNavigable() = true;
			::GOAL::ConditionsAdapter::meta_BooleanOperators_children.target() = ::GOAL::BooleanOperators::meta;
		}
		void InitComposition59()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::Input::meta_ConditionsAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::Input::meta_ConditionsAdapter_parent.name() = "ConditionsAdapter_parent";
			::GOAL::Input::meta_ConditionsAdapter_parent.isNavigable() = true;
			::GOAL::Input::meta_ConditionsAdapter_parent.target() = ::GOAL::ConditionsAdapter::meta;
			::GOAL::ConditionsAdapter::meta_Input_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::ConditionsAdapter::meta_Input_children.name() = "Input";
			::GOAL::ConditionsAdapter::meta_Input_children.min() = 0;
			::GOAL::ConditionsAdapter::meta_Input_children.max() = -1;
			::GOAL::ConditionsAdapter::meta_Input_children.isNavigable() = true;
			::GOAL::ConditionsAdapter::meta_Input_children.target() = ::GOAL::Input::meta;
		}
		void InitComposition60()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::InputOutput::meta_ConditionsAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::InputOutput::meta_ConditionsAdapter_parent.name() = "ConditionsAdapter_parent";
			::GOAL::InputOutput::meta_ConditionsAdapter_parent.isNavigable() = true;
			::GOAL::InputOutput::meta_ConditionsAdapter_parent.target() = ::GOAL::ConditionsAdapter::meta;
			::GOAL::ConditionsAdapter::meta_InputOutput_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::ConditionsAdapter::meta_InputOutput_children.name() = "InputOutput";
			::GOAL::ConditionsAdapter::meta_InputOutput_children.min() = 0;
			::GOAL::ConditionsAdapter::meta_InputOutput_children.max() = -1;
			::GOAL::ConditionsAdapter::meta_InputOutput_children.isNavigable() = true;
			::GOAL::ConditionsAdapter::meta_InputOutput_children.target() = ::GOAL::InputOutput::meta;
		}
		void InitComposition61()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::Variable::meta_ConditionsAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::Variable::meta_ConditionsAdapter_parent.name() = "ConditionsAdapter_parent";
			::GOAL::Variable::meta_ConditionsAdapter_parent.isNavigable() = true;
			::GOAL::Variable::meta_ConditionsAdapter_parent.target() = ::GOAL::ConditionsAdapter::meta;
			::GOAL::ConditionsAdapter::meta_Variable_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::ConditionsAdapter::meta_Variable_children.name() = "Variable";
			::GOAL::ConditionsAdapter::meta_Variable_children.min() = 0;
			::GOAL::ConditionsAdapter::meta_Variable_children.max() = -1;
			::GOAL::ConditionsAdapter::meta_Variable_children.isNavigable() = true;
			::GOAL::ConditionsAdapter::meta_Variable_children.target() = ::GOAL::Variable::meta;
		}
		void InitComposition62()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::BinaryOperator::meta_ConditionsAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::BinaryOperator::meta_ConditionsAdapter_parent.name() = "ConditionsAdapter_parent";
			::GOAL::BinaryOperator::meta_ConditionsAdapter_parent.isNavigable() = true;
			::GOAL::BinaryOperator::meta_ConditionsAdapter_parent.target() = ::GOAL::ConditionsAdapter::meta;
			::GOAL::ConditionsAdapter::meta_BinaryOperator_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::ConditionsAdapter::meta_BinaryOperator_children.name() = "BinaryOperator";
			::GOAL::ConditionsAdapter::meta_BinaryOperator_children.min() = 0;
			::GOAL::ConditionsAdapter::meta_BinaryOperator_children.max() = -1;
			::GOAL::ConditionsAdapter::meta_BinaryOperator_children.isNavigable() = true;
			::GOAL::ConditionsAdapter::meta_BinaryOperator_children.target() = ::GOAL::BinaryOperator::meta;
		}
		void InitComposition63()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::CommonConnection::meta_ConditionsAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::CommonConnection::meta_ConditionsAdapter_parent.name() = "ConditionsAdapter_parent";
			::GOAL::CommonConnection::meta_ConditionsAdapter_parent.isNavigable() = true;
			::GOAL::CommonConnection::meta_ConditionsAdapter_parent.target() = ::GOAL::ConditionsAdapter::meta;
			::GOAL::ConditionsAdapter::meta_CommonConnection_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::ConditionsAdapter::meta_CommonConnection_children.name() = "CommonConnection";
			::GOAL::ConditionsAdapter::meta_CommonConnection_children.min() = 0;
			::GOAL::ConditionsAdapter::meta_CommonConnection_children.max() = -1;
			::GOAL::ConditionsAdapter::meta_CommonConnection_children.isNavigable() = true;
			::GOAL::ConditionsAdapter::meta_CommonConnection_children.target() = ::GOAL::CommonConnection::meta;
		}
		void InitComposition64()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::ConstBase::meta_ConditionsAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::ConstBase::meta_ConditionsAdapter_parent.name() = "ConditionsAdapter_parent";
			::GOAL::ConstBase::meta_ConditionsAdapter_parent.isNavigable() = true;
			::GOAL::ConstBase::meta_ConditionsAdapter_parent.target() = ::GOAL::ConditionsAdapter::meta;
			::GOAL::ConditionsAdapter::meta_ConstBase_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::ConditionsAdapter::meta_ConstBase_children.name() = "ConstBase";
			::GOAL::ConditionsAdapter::meta_ConstBase_children.min() = 0;
			::GOAL::ConditionsAdapter::meta_ConstBase_children.max() = -1;
			::GOAL::ConditionsAdapter::meta_ConstBase_children.isNavigable() = true;
			::GOAL::ConditionsAdapter::meta_ConstBase_children.target() = ::GOAL::ConstBase::meta;
		}
		void InitComposition65()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::UnaryOperator::meta_ConditionsAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::UnaryOperator::meta_ConditionsAdapter_parent.name() = "ConditionsAdapter_parent";
			::GOAL::UnaryOperator::meta_ConditionsAdapter_parent.isNavigable() = true;
			::GOAL::UnaryOperator::meta_ConditionsAdapter_parent.target() = ::GOAL::ConditionsAdapter::meta;
			::GOAL::ConditionsAdapter::meta_UnaryOperator_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::ConditionsAdapter::meta_UnaryOperator_children.name() = "UnaryOperator";
			::GOAL::ConditionsAdapter::meta_UnaryOperator_children.min() = 0;
			::GOAL::ConditionsAdapter::meta_UnaryOperator_children.max() = -1;
			::GOAL::ConditionsAdapter::meta_UnaryOperator_children.isNavigable() = true;
			::GOAL::ConditionsAdapter::meta_UnaryOperator_children.target() = ::GOAL::UnaryOperator::meta;
		}
		void InitComposition66()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::FunctionCall::meta_ConditionsAdapter_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::FunctionCall::meta_ConditionsAdapter_parent.name() = "ConditionsAdapter_parent";
			::GOAL::FunctionCall::meta_ConditionsAdapter_parent.isNavigable() = true;
			::GOAL::FunctionCall::meta_ConditionsAdapter_parent.target() = ::GOAL::ConditionsAdapter::meta;
			::GOAL::ConditionsAdapter::meta_FunctionCall_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::ConditionsAdapter::meta_FunctionCall_children.name() = "FunctionCall";
			::GOAL::ConditionsAdapter::meta_FunctionCall_children.min() = 0;
			::GOAL::ConditionsAdapter::meta_FunctionCall_children.max() = -1;
			::GOAL::ConditionsAdapter::meta_FunctionCall_children.isNavigable() = true;
			::GOAL::ConditionsAdapter::meta_FunctionCall_children.target() = ::GOAL::FunctionCall::meta;
		}
		void InitComposition67()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::CodeAdapter::meta_RootFolder_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::CodeAdapter::meta_RootFolder_parent.name() = "RootFolder_parent";
			::GOAL::CodeAdapter::meta_RootFolder_parent.isNavigable() = true;
			::GOAL::CodeAdapter::meta_RootFolder_parent.target() = ::GOAL::RootFolder::meta;
			::GOAL::RootFolder::meta_CodeAdapter_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::RootFolder::meta_CodeAdapter_children.name() = "CodeAdapter";
			::GOAL::RootFolder::meta_CodeAdapter_children.min() = 0;
			::GOAL::RootFolder::meta_CodeAdapter_children.max() = -1;
			::GOAL::RootFolder::meta_CodeAdapter_children.isNavigable() = true;
			::GOAL::RootFolder::meta_CodeAdapter_children.target() = ::GOAL::CodeAdapter::meta;
		}
		void InitComposition68()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::ModuleAdapter::meta_RootFolder_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::ModuleAdapter::meta_RootFolder_parent.name() = "RootFolder_parent";
			::GOAL::ModuleAdapter::meta_RootFolder_parent.isNavigable() = true;
			::GOAL::ModuleAdapter::meta_RootFolder_parent.target() = ::GOAL::RootFolder::meta;
			::GOAL::RootFolder::meta_ModuleAdapter_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::RootFolder::meta_ModuleAdapter_children.name() = "ModuleAdapter";
			::GOAL::RootFolder::meta_ModuleAdapter_children.min() = 0;
			::GOAL::RootFolder::meta_ModuleAdapter_children.max() = -1;
			::GOAL::RootFolder::meta_ModuleAdapter_children.isNavigable() = true;
			::GOAL::RootFolder::meta_ModuleAdapter_children.target() = ::GOAL::ModuleAdapter::meta;
		}
		void InitComposition69()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::ClassAdapter::meta_RootFolder_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::ClassAdapter::meta_RootFolder_parent.name() = "RootFolder_parent";
			::GOAL::ClassAdapter::meta_RootFolder_parent.isNavigable() = true;
			::GOAL::ClassAdapter::meta_RootFolder_parent.target() = ::GOAL::RootFolder::meta;
			::GOAL::RootFolder::meta_ClassAdapter_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::RootFolder::meta_ClassAdapter_children.name() = "ClassAdapter";
			::GOAL::RootFolder::meta_ClassAdapter_children.min() = 0;
			::GOAL::RootFolder::meta_ClassAdapter_children.max() = -1;
			::GOAL::RootFolder::meta_ClassAdapter_children.isNavigable() = true;
			::GOAL::RootFolder::meta_ClassAdapter_children.target() = ::GOAL::ClassAdapter::meta;
		}
		void InitComposition70()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::ConditionsAdapter::meta_RootFolder_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::ConditionsAdapter::meta_RootFolder_parent.name() = "RootFolder_parent";
			::GOAL::ConditionsAdapter::meta_RootFolder_parent.isNavigable() = true;
			::GOAL::ConditionsAdapter::meta_RootFolder_parent.target() = ::GOAL::RootFolder::meta;
			::GOAL::RootFolder::meta_ConditionsAdapter_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::RootFolder::meta_ConditionsAdapter_children.name() = "ConditionsAdapter";
			::GOAL::RootFolder::meta_ConditionsAdapter_children.min() = 0;
			::GOAL::RootFolder::meta_ConditionsAdapter_children.max() = -1;
			::GOAL::RootFolder::meta_ConditionsAdapter_children.isNavigable() = true;
			::GOAL::RootFolder::meta_ConditionsAdapter_children.target() = ::GOAL::ConditionsAdapter::meta;
		}
		void InitComposition71()
		{
			::Uml::Composition comp = ::Uml::Composition::Create(umldiagram);
			comp.nonpersistent() =false;
			::GOAL::RootFolder::meta_RootFolder_parent = ::Uml::CompositionParentRole::Create(comp);
			::GOAL::RootFolder::meta_RootFolder_parent.name() = "RootFolder_parent";
			::GOAL::RootFolder::meta_RootFolder_parent.isNavigable() = true;
			::GOAL::RootFolder::meta_RootFolder_parent.target() = ::GOAL::RootFolder::meta;
			::GOAL::RootFolder::meta_RootFolder_children = ::Uml::CompositionChildRole::Create(comp);
			::GOAL::RootFolder::meta_RootFolder_children.name() = "RootFolder";
			::GOAL::RootFolder::meta_RootFolder_children.min() = 0;
			::GOAL::RootFolder::meta_RootFolder_children.max() = -1;
			::GOAL::RootFolder::meta_RootFolder_children.isNavigable() = true;
			::GOAL::RootFolder::meta_RootFolder_children.target() = ::GOAL::RootFolder::meta;
		}
		void InitCrossNSCompositions()
		{
		}
		void InitInheritence()
		{
			MgaObject::meta.subTypes() +=  ::GOAL::Adapter::meta;
			MgaObject::meta.subTypes() +=  ::GOAL::RightHandSideObject::meta;
			MgaObject::meta.subTypes() +=  ::GOAL::ComposableBase::meta;
			MgaObject::meta.subTypes() +=  ::GOAL::Return::meta;
			MgaObject::meta.subTypes() +=  ::GOAL::IOBase::meta;
			MgaObject::meta.subTypes() +=  ::GOAL::ControlBase::meta;
			MgaObject::meta.subTypes() +=  ::GOAL::AccumulatorBase::meta;
			MgaObject::meta.subTypes() +=  ::GOAL::CommonConnection::meta;
			MgaObject::meta.subTypes() +=  ::GOAL::Function::meta;
			MgaObject::meta.subTypes() +=  ::GOAL::InfixOperators::meta;
			MgaObject::meta.subTypes() +=  ::GOAL::Argument::meta;
			MgaObject::meta.subTypes() +=  ::GOAL::ClassMember::meta;
			MgaObject::meta.subTypes() +=  ::GOAL::ClassConnection::meta;
			MgaObject::meta.subTypes() +=  ::GOAL::VariableRef::meta;
			Adapter::meta.subTypes() +=  ::GOAL::ModuleAdapter::meta;
			Adapter::meta.subTypes() +=  ::GOAL::CodeAdapter::meta;
			Adapter::meta.subTypes() +=  ::GOAL::ClassAdapter::meta;
			Adapter::meta.subTypes() +=  ::GOAL::ConditionsAdapter::meta;
			RightHandSideObject::meta.subTypes() +=  ::GOAL::UnaryOperator::meta;
			RightHandSideObject::meta.subTypes() +=  ::GOAL::BinaryOperator::meta;
			RightHandSideObject::meta.subTypes() +=  ::GOAL::FunctionCall::meta;
			RightHandSideObject::meta.subTypes() +=  ::GOAL::BooleanOperators::meta;
			RightHandSideObject::meta.subTypes() +=  ::GOAL::ConstBase::meta;
			RightHandSideObject::meta.subTypes() +=  ::GOAL::IndexOperator::meta;
			RightHandSideObject::meta.subTypes() +=  ::GOAL::VariableBase::meta;
			ModuleAdapter::meta.subTypes() +=  ::GOAL::Module::meta;
			ComposableBase::meta.subTypes() +=  ::GOAL::Array::meta;
			ComposableBase::meta.subTypes() +=  ::GOAL::ClassRef::meta;
			Output::meta.subTypes() +=  ::GOAL::Console::meta;
			UnaryOperator::meta.subTypes() +=  ::GOAL::Not::meta;
			BinaryOperator::meta.subTypes() +=  ::GOAL::Plus::meta;
			BinaryOperator::meta.subTypes() +=  ::GOAL::Divide::meta;
			BinaryOperator::meta.subTypes() +=  ::GOAL::Times::meta;
			BinaryOperator::meta.subTypes() +=  ::GOAL::Minus::meta;
			BinaryOperator::meta.subTypes() +=  ::GOAL::Modulus::meta;
			IOBase::meta.subTypes() +=  ::GOAL::Output::meta;
			IOBase::meta.subTypes() +=  ::GOAL::Input::meta;
			IOBase::meta.subTypes() +=  ::GOAL::InputOutput::meta;
			ControlBase::meta.subTypes() +=  ::GOAL::For::meta;
			ControlBase::meta.subTypes() +=  ::GOAL::If::meta;
			ControlBase::meta.subTypes() +=  ::GOAL::While::meta;
			BooleanOperators::meta.subTypes() +=  ::GOAL::And::meta;
			BooleanOperators::meta.subTypes() +=  ::GOAL::Or::meta;
			BooleanOperators::meta.subTypes() +=  ::GOAL::NotEqual::meta;
			BooleanOperators::meta.subTypes() +=  ::GOAL::Equal::meta;
			BooleanOperators::meta.subTypes() +=  ::GOAL::LessThan::meta;
			BooleanOperators::meta.subTypes() +=  ::GOAL::LessThanOrEqual::meta;
			BooleanOperators::meta.subTypes() +=  ::GOAL::GreaterThan::meta;
			BooleanOperators::meta.subTypes() +=  ::GOAL::GreaterThanOrEqual::meta;
			AccumulatorBase::meta.subTypes() +=  ::GOAL::Increment::meta;
			AccumulatorBase::meta.subTypes() +=  ::GOAL::Decrement::meta;
			CommonConnection::meta.subTypes() +=  ::GOAL::IndexConnection::meta;
			CommonConnection::meta.subTypes() +=  ::GOAL::NonModifyingConnection::meta;
			CommonConnection::meta.subTypes() +=  ::GOAL::OutputConnection::meta;
			CommonConnection::meta.subTypes() +=  ::GOAL::ArrayAssignmentConnection::meta;
			CommonConnection::meta.subTypes() +=  ::GOAL::AssignmentRHSConnection::meta;
			CommonConnection::meta.subTypes() +=  ::GOAL::ArgumentConnection::meta;
			CommonConnection::meta.subTypes() +=  ::GOAL::AssignmentConnection::meta;
			CommonConnection::meta.subTypes() +=  ::GOAL::KeyboardConnection::meta;
			ConstBase::meta.subTypes() +=  ::GOAL::Const::meta;
			IndexOperator::meta.subTypes() +=  ::GOAL::Brackets::meta;
			InfixOperators::meta.subTypes() +=  ::GOAL::Assignment::meta;
			InfixOperators::meta.subTypes() +=  ::GOAL::PlusEquals::meta;
			InfixOperators::meta.subTypes() +=  ::GOAL::DivideEquals::meta;
			InfixOperators::meta.subTypes() +=  ::GOAL::MinusEquals::meta;
			InfixOperators::meta.subTypes() +=  ::GOAL::TimesEquals::meta;
			Input::meta.subTypes() +=  ::GOAL::Keyboard::meta;
			InputOutput::meta.subTypes() +=  ::GOAL::File::meta;
			ClassConnection::meta.subTypes() +=  ::GOAL::BridgeConnection::meta;
			ClassAdapter::meta.subTypes() +=  ::GOAL::Class::meta;
			VariableBase::meta.subTypes() +=  ::GOAL::Variable::meta;
			VariableRef_RefersTo_Base::meta.subTypes() +=  ::GOAL::Return::meta;
			VariableRef_RefersTo_Base::meta.subTypes() +=  ::GOAL::Argument::meta;
			VariableRef_RefersTo_Base::meta.subTypes() +=  ::GOAL::Variable::meta;
		}
		void InitCrossNSInheritence()
		{
		}
		void InitializeDgr()
		{
			Creates();
			InitClassesAttributes();
			CreatesNamespaces();
			InitNamespaces();
			InitAssociation0();
			InitAssociation1();
			InitAssociation2();
			InitAssociation3();
			InitAssociation4();
			InitAssociation5();
			InitAssociation6();
			InitAssociation7();
			InitAssociation8();
			InitAssociation9();
			InitAssociation10();
			InitAssociation11();
			InitComposition0();
			InitComposition1();
			InitComposition2();
			InitComposition3();
			InitComposition4();
			InitComposition5();
			InitComposition6();
			InitComposition7();
			InitComposition8();
			InitComposition9();
			InitComposition10();
			InitComposition11();
			InitComposition12();
			InitComposition13();
			InitComposition14();
			InitComposition15();
			InitComposition16();
			InitComposition17();
			InitComposition18();
			InitComposition19();
			InitComposition20();
			InitComposition21();
			InitComposition22();
			InitComposition23();
			InitComposition24();
			InitComposition25();
			InitComposition26();
			InitComposition27();
			InitComposition28();
			InitComposition29();
			InitComposition30();
			InitComposition31();
			InitComposition32();
			InitComposition33();
			InitComposition34();
			InitComposition35();
			InitComposition36();
			InitComposition37();
			InitComposition38();
			InitComposition39();
			InitComposition40();
			InitComposition41();
			InitComposition42();
			InitComposition43();
			InitComposition44();
			InitComposition45();
			InitComposition46();
			InitComposition47();
			InitComposition48();
			InitComposition49();
			InitComposition50();
			InitComposition51();
			InitComposition52();
			InitComposition53();
			InitComposition54();
			InitComposition55();
			InitComposition56();
			InitComposition57();
			InitComposition58();
			InitComposition59();
			InitComposition60();
			InitComposition61();
			InitComposition62();
			InitComposition63();
			InitComposition64();
			InitComposition65();
			InitComposition66();
			InitComposition67();
			InitComposition68();
			InitComposition69();
			InitComposition70();
			InitComposition71();
			InitInheritence();
		}

		// initialize from another diagram
		void Creates2(const ::Uml::Diagram &dgr)
		{
			::Uml::SetClass(Plus::meta, dgr, "Plus");
			::Uml::SetClass(MgaObject::meta, dgr, "MgaObject");
			::Uml::SetAttribute(MgaObject::meta_position, MgaObject::meta, "position");
			::Uml::SetAttribute(MgaObject::meta_name, MgaObject::meta, "name");
			::Uml::SetClass(Divide::meta, dgr, "Divide");
			::Uml::SetClass(Times::meta, dgr, "Times");
			::Uml::SetClass(Minus::meta, dgr, "Minus");
			::Uml::SetClass(Modulus::meta, dgr, "Modulus");
			::Uml::SetClass(Adapter::meta, dgr, "Adapter");
			::Uml::SetClass(RightHandSideObject::meta, dgr, "RightHandSideObject");
			::Uml::SetClass(Module::meta, dgr, "Module");
			::Uml::SetClass(ModuleAdapter::meta, dgr, "ModuleAdapter");
			::Uml::SetClass(Not::meta, dgr, "Not");
			::Uml::SetClass(Assignment::meta, dgr, "Assignment");
			::Uml::SetClass(File::meta, dgr, "File");
			::Uml::SetAttribute(File::meta_options, File::meta, "options");
			::Uml::SetAttribute(File::meta_filename, File::meta, "filename");
			::Uml::SetClass(Console::meta, dgr, "Console");
			::Uml::SetClass(Keyboard::meta, dgr, "Keyboard");
			::Uml::SetClass(ComposableBase::meta, dgr, "ComposableBase");
			::Uml::SetClass(Brackets::meta, dgr, "Brackets");
			::Uml::SetClass(Output::meta, dgr, "Output");
			::Uml::SetClass(IndexConnection::meta, dgr, "IndexConnection");
			::Uml::SetClass(NonModifyingConnection::meta, dgr, "NonModifyingConnection");
			::Uml::SetClass(PlusEquals::meta, dgr, "PlusEquals");
			::Uml::SetClass(DivideEquals::meta, dgr, "DivideEquals");
			::Uml::SetClass(MinusEquals::meta, dgr, "MinusEquals");
			::Uml::SetClass(TimesEquals::meta, dgr, "TimesEquals");
			::Uml::SetClass(Increment::meta, dgr, "Increment");
			::Uml::SetClass(Decrement::meta, dgr, "Decrement");
			::Uml::SetClass(And::meta, dgr, "And");
			::Uml::SetClass(Or::meta, dgr, "Or");
			::Uml::SetClass(OutputConnection::meta, dgr, "OutputConnection");
			::Uml::SetClass(ArrayAssignmentConnection::meta, dgr, "ArrayAssignmentConnection");
			::Uml::SetClass(AssignmentRHSConnection::meta, dgr, "AssignmentRHSConnection");
			::Uml::SetClass(ArgumentConnection::meta, dgr, "ArgumentConnection");
			::Uml::SetClass(Return::meta, dgr, "Return");
			::Uml::SetClass(UnaryOperator::meta, dgr, "UnaryOperator");
			::Uml::SetClass(BinaryOperator::meta, dgr, "BinaryOperator");
			::Uml::SetClass(FunctionCall::meta, dgr, "FunctionCall");
			::Uml::SetClass(IOBase::meta, dgr, "IOBase");
			::Uml::SetClass(ControlBase::meta, dgr, "ControlBase");
			::Uml::SetClass(BooleanOperators::meta, dgr, "BooleanOperators");
			::Uml::SetClass(AccumulatorBase::meta, dgr, "AccumulatorBase");
			::Uml::SetClass(CommonConnection::meta, dgr, "CommonConnection");
			::Uml::SetClass(ConstBase::meta, dgr, "ConstBase");
			::Uml::SetAttribute(ConstBase::meta_accessibility, ConstBase::meta, "accessibility");
			::Uml::SetClass(AssignmentConnection::meta, dgr, "AssignmentConnection");
			::Uml::SetClass(Function::meta, dgr, "Function");
			::Uml::SetAttribute(Function::meta_accessibility, Function::meta, "accessibility");
			::Uml::SetClass(IndexOperator::meta, dgr, "IndexOperator");
			::Uml::SetClass(InfixOperators::meta, dgr, "InfixOperators");
			::Uml::SetClass(Input::meta, dgr, "Input");
			::Uml::SetClass(InputOutput::meta, dgr, "InputOutput");
			::Uml::SetClass(Argument::meta, dgr, "Argument");
			::Uml::SetClass(Variable::meta, dgr, "Variable");
			::Uml::SetAttribute(Variable::meta_Value, Variable::meta, "Value");
			::Uml::SetClass(For::meta, dgr, "For");
			::Uml::SetClass(ClassMember::meta, dgr, "ClassMember");
			::Uml::SetClass(CodeAdapter::meta, dgr, "CodeAdapter");
			::Uml::SetClass(If::meta, dgr, "If");
			::Uml::SetClass(While::meta, dgr, "While");
			::Uml::SetClass(ClassConnection::meta, dgr, "ClassConnection");
			::Uml::SetClass(ClassAdapter::meta, dgr, "ClassAdapter");
			::Uml::SetClass(NotEqual::meta, dgr, "NotEqual");
			::Uml::SetClass(Equal::meta, dgr, "Equal");
			::Uml::SetClass(LessThan::meta, dgr, "LessThan");
			::Uml::SetClass(Array::meta, dgr, "Array");
			::Uml::SetAttribute(Array::meta_Size, Array::meta, "Size");
			::Uml::SetClass(Const::meta, dgr, "Const");
			::Uml::SetAttribute(Const::meta_Value, Const::meta, "Value");
			::Uml::SetClass(VariableBase::meta, dgr, "VariableBase");
			::Uml::SetClass(LessThanOrEqual::meta, dgr, "LessThanOrEqual");
			::Uml::SetClass(GreaterThan::meta, dgr, "GreaterThan");
			::Uml::SetClass(GreaterThanOrEqual::meta, dgr, "GreaterThanOrEqual");
			::Uml::SetClass(ClassRef::meta, dgr, "ClassRef");
			::Uml::SetClass(VariableRef::meta, dgr, "VariableRef");
			::Uml::SetClass(KeyboardConnection::meta, dgr, "KeyboardConnection");
			::Uml::SetClass(ConditionsAdapter::meta, dgr, "ConditionsAdapter");
			::Uml::SetClass(BridgeConnection::meta, dgr, "BridgeConnection");
			::Uml::SetClass(Class::meta, dgr, "Class");
			::Uml::SetAttribute(Class::meta_ValueFormat, Class::meta, "ValueFormat");
			::Uml::SetAttribute(Class::meta_accessibility, Class::meta, "accessibility");
			::Uml::SetClass(RootFolder::meta, dgr, "RootFolder");
			::Uml::SetAttribute(RootFolder::meta_name, RootFolder::meta, "name");
			::Uml::SetClass(VariableRef_RefersTo_Base::meta, dgr, "VariableRef_RefersTo_Base");
		}
		void CreatesNamespaces2(const ::Uml::Diagram &dgr)
		{
		}
		void InitializeDgrSetupMeta(const ::Uml::Diagram & dgr)
		{
			Creates2(dgr);
			CreatesNamespaces2(dgr);
		}
		void InitializeDgr2()
		{
			//composition child roles 
			::Uml::SetParentRole(Module::meta_ModuleAdapter_parent, Module::meta, ::GOAL::ModuleAdapter::meta, "", "");
			::Uml::SetParentRole(ModuleAdapter::meta_RootFolder_parent, ModuleAdapter::meta, ::GOAL::RootFolder::meta, "", "");
			::Uml::SetParentRole(ComposableBase::meta_Argument_parent, ComposableBase::meta, ::GOAL::Argument::meta, "", "");
			::Uml::SetParentRole(ComposableBase::meta_Return_parent, ComposableBase::meta, ::GOAL::Return::meta, "", "");
			::Uml::SetParentRole(ComposableBase::meta_ClassMember_parent, ComposableBase::meta, ::GOAL::ClassMember::meta, "", "");
			::Uml::SetParentRole(ComposableBase::meta_Array_parent, ComposableBase::meta, ::GOAL::Array::meta, "", "");
			::Uml::SetParentRole(ComposableBase::meta_Const_parent, ComposableBase::meta, ::GOAL::Const::meta, "", "");
			::Uml::SetParentRole(ComposableBase::meta_VariableBase_parent, ComposableBase::meta, ::GOAL::VariableBase::meta, "", "");
			::Uml::SetParentRole(Return::meta_Function_parent, Return::meta, ::GOAL::Function::meta, "", "");
			::Uml::SetParentRole(UnaryOperator::meta_IndexOperator_parent, UnaryOperator::meta, ::GOAL::IndexOperator::meta, "", "");
			::Uml::SetParentRole(UnaryOperator::meta_Function_parent, UnaryOperator::meta, ::GOAL::Function::meta, "", "");
			::Uml::SetParentRole(UnaryOperator::meta_CodeAdapter_parent, UnaryOperator::meta, ::GOAL::CodeAdapter::meta, "", "");
			::Uml::SetParentRole(UnaryOperator::meta_ConditionsAdapter_parent, UnaryOperator::meta, ::GOAL::ConditionsAdapter::meta, "", "");
			::Uml::SetParentRole(BinaryOperator::meta_IndexOperator_parent, BinaryOperator::meta, ::GOAL::IndexOperator::meta, "", "");
			::Uml::SetParentRole(BinaryOperator::meta_Function_parent, BinaryOperator::meta, ::GOAL::Function::meta, "", "");
			::Uml::SetParentRole(BinaryOperator::meta_CodeAdapter_parent, BinaryOperator::meta, ::GOAL::CodeAdapter::meta, "", "");
			::Uml::SetParentRole(BinaryOperator::meta_ConditionsAdapter_parent, BinaryOperator::meta, ::GOAL::ConditionsAdapter::meta, "", "");
			::Uml::SetParentRole(FunctionCall::meta_IndexOperator_parent, FunctionCall::meta, ::GOAL::IndexOperator::meta, "", "");
			::Uml::SetParentRole(FunctionCall::meta_Function_parent, FunctionCall::meta, ::GOAL::Function::meta, "", "");
			::Uml::SetParentRole(FunctionCall::meta_CodeAdapter_parent, FunctionCall::meta, ::GOAL::CodeAdapter::meta, "", "");
			::Uml::SetParentRole(FunctionCall::meta_ConditionsAdapter_parent, FunctionCall::meta, ::GOAL::ConditionsAdapter::meta, "", "");
			::Uml::SetParentRole(IOBase::meta_CodeAdapter_parent, IOBase::meta, ::GOAL::CodeAdapter::meta, "", "");
			::Uml::SetParentRole(IOBase::meta_Function_parent, IOBase::meta, ::GOAL::Function::meta, "", "");
			::Uml::SetParentRole(ControlBase::meta_CodeAdapter_parent, ControlBase::meta, ::GOAL::CodeAdapter::meta, "", "");
			::Uml::SetParentRole(ControlBase::meta_Function_parent, ControlBase::meta, ::GOAL::Function::meta, "", "");
			::Uml::SetParentRole(BooleanOperators::meta_CodeAdapter_parent, BooleanOperators::meta, ::GOAL::CodeAdapter::meta, "", "");
			::Uml::SetParentRole(BooleanOperators::meta_IndexOperator_parent, BooleanOperators::meta, ::GOAL::IndexOperator::meta, "", "");
			::Uml::SetParentRole(BooleanOperators::meta_ConditionsAdapter_parent, BooleanOperators::meta, ::GOAL::ConditionsAdapter::meta, "", "");
			::Uml::SetParentRole(AccumulatorBase::meta_CodeAdapter_parent, AccumulatorBase::meta, ::GOAL::CodeAdapter::meta, "", "");
			::Uml::SetParentRole(AccumulatorBase::meta_Function_parent, AccumulatorBase::meta, ::GOAL::Function::meta, "", "");
			::Uml::SetParentRole(CommonConnection::meta_IndexOperator_parent, CommonConnection::meta, ::GOAL::IndexOperator::meta, "", "");
			::Uml::SetParentRole(CommonConnection::meta_Function_parent, CommonConnection::meta, ::GOAL::Function::meta, "", "");
			::Uml::SetParentRole(CommonConnection::meta_CodeAdapter_parent, CommonConnection::meta, ::GOAL::CodeAdapter::meta, "", "");
			::Uml::SetParentRole(CommonConnection::meta_ConditionsAdapter_parent, CommonConnection::meta, ::GOAL::ConditionsAdapter::meta, "", "");
			::Uml::SetParentRole(ConstBase::meta_IndexOperator_parent, ConstBase::meta, ::GOAL::IndexOperator::meta, "", "");
			::Uml::SetParentRole(ConstBase::meta_Function_parent, ConstBase::meta, ::GOAL::Function::meta, "", "");
			::Uml::SetParentRole(ConstBase::meta_CodeAdapter_parent, ConstBase::meta, ::GOAL::CodeAdapter::meta, "", "");
			::Uml::SetParentRole(ConstBase::meta_ClassAdapter_parent, ConstBase::meta, ::GOAL::ClassAdapter::meta, "", "");
			::Uml::SetParentRole(ConstBase::meta_ConditionsAdapter_parent, ConstBase::meta, ::GOAL::ConditionsAdapter::meta, "", "");
			::Uml::SetParentRole(Function::meta_ClassAdapter_parent, Function::meta, ::GOAL::ClassAdapter::meta, "", "");
			::Uml::SetParentRole(IndexOperator::meta_Function_parent, IndexOperator::meta, ::GOAL::Function::meta, "", "");
			::Uml::SetParentRole(IndexOperator::meta_IndexOperator_parent, IndexOperator::meta, ::GOAL::IndexOperator::meta, "", "");
			::Uml::SetParentRole(IndexOperator::meta_CodeAdapter_parent, IndexOperator::meta, ::GOAL::CodeAdapter::meta, "", "");
			::Uml::SetParentRole(IndexOperator::meta_ConditionsAdapter_parent, IndexOperator::meta, ::GOAL::ConditionsAdapter::meta, "", "");
			::Uml::SetParentRole(InfixOperators::meta_Function_parent, InfixOperators::meta, ::GOAL::Function::meta, "", "");
			::Uml::SetParentRole(InfixOperators::meta_CodeAdapter_parent, InfixOperators::meta, ::GOAL::CodeAdapter::meta, "", "");
			::Uml::SetParentRole(Input::meta_IndexOperator_parent, Input::meta, ::GOAL::IndexOperator::meta, "", "");
			::Uml::SetParentRole(Input::meta_ConditionsAdapter_parent, Input::meta, ::GOAL::ConditionsAdapter::meta, "", "");
			::Uml::SetParentRole(InputOutput::meta_IndexOperator_parent, InputOutput::meta, ::GOAL::IndexOperator::meta, "", "");
			::Uml::SetParentRole(InputOutput::meta_ConditionsAdapter_parent, InputOutput::meta, ::GOAL::ConditionsAdapter::meta, "", "");
			::Uml::SetParentRole(Argument::meta_Function_parent, Argument::meta, ::GOAL::Function::meta, "", "");
			::Uml::SetParentRole(Variable::meta_Function_parent, Variable::meta, ::GOAL::Function::meta, "", "");
			::Uml::SetParentRole(Variable::meta_IndexOperator_parent, Variable::meta, ::GOAL::IndexOperator::meta, "", "");
			::Uml::SetParentRole(Variable::meta_CodeAdapter_parent, Variable::meta, ::GOAL::CodeAdapter::meta, "", "");
			::Uml::SetParentRole(Variable::meta_ConditionsAdapter_parent, Variable::meta, ::GOAL::ConditionsAdapter::meta, "", "");
			::Uml::SetParentRole(ClassMember::meta_ClassAdapter_parent, ClassMember::meta, ::GOAL::ClassAdapter::meta, "", "");
			::Uml::SetParentRole(CodeAdapter::meta_For_parent, CodeAdapter::meta, ::GOAL::For::meta, "", "");
			::Uml::SetParentRole(CodeAdapter::meta_CodeAdapter_parent, CodeAdapter::meta, ::GOAL::CodeAdapter::meta, "", "");
			::Uml::SetParentRole(CodeAdapter::meta_If_parent, CodeAdapter::meta, ::GOAL::If::meta, "", "");
			::Uml::SetParentRole(CodeAdapter::meta_While_parent, CodeAdapter::meta, ::GOAL::While::meta, "", "");
			::Uml::SetParentRole(CodeAdapter::meta_RootFolder_parent, CodeAdapter::meta, ::GOAL::RootFolder::meta, "", "");
			::Uml::SetParentRole(ClassConnection::meta_ClassAdapter_parent, ClassConnection::meta, ::GOAL::ClassAdapter::meta, "", "");
			::Uml::SetParentRole(ClassAdapter::meta_RootFolder_parent, ClassAdapter::meta, ::GOAL::RootFolder::meta, "", "");
			::Uml::SetParentRole(Const::meta_Array_parent, Const::meta, ::GOAL::Array::meta, "", "");
			::Uml::SetParentRole(VariableRef::meta_VariableBase_parent, VariableRef::meta, ::GOAL::VariableBase::meta, "", "");
			::Uml::SetParentRole(ConditionsAdapter::meta_For_parent, ConditionsAdapter::meta, ::GOAL::For::meta, "", "");
			::Uml::SetParentRole(ConditionsAdapter::meta_If_parent, ConditionsAdapter::meta, ::GOAL::If::meta, "", "");
			::Uml::SetParentRole(ConditionsAdapter::meta_While_parent, ConditionsAdapter::meta, ::GOAL::While::meta, "", "");
			::Uml::SetParentRole(ConditionsAdapter::meta_RootFolder_parent, ConditionsAdapter::meta, ::GOAL::RootFolder::meta, "", "");
			::Uml::SetParentRole(Class::meta_ModuleAdapter_parent, Class::meta, ::GOAL::ModuleAdapter::meta, "", "");
			::Uml::SetParentRole(Class::meta_ClassAdapter_parent, Class::meta, ::GOAL::ClassAdapter::meta, "", "");
			::Uml::SetParentRole(RootFolder::meta_RootFolder_parent, RootFolder::meta, ::GOAL::RootFolder::meta, "", "");

			// composition parentroles 
			::Uml::SetChildRole(ModuleAdapter::meta_Module_children, ModuleAdapter::meta, ::GOAL::Module::meta, "", "");
			::Uml::SetChildRole(ModuleAdapter::meta_Class_children, ModuleAdapter::meta, ::GOAL::Class::meta, "", "");
			::Uml::SetChildRole(Return::meta_ComposableBase_children, Return::meta, ::GOAL::ComposableBase::meta, "", "");
			::Uml::SetChildRole(Function::meta_AccumulatorBase_children, Function::meta, ::GOAL::AccumulatorBase::meta, "", "");
			::Uml::SetChildRole(Function::meta_Argument_children, Function::meta, ::GOAL::Argument::meta, "", "");
			::Uml::SetChildRole(Function::meta_Variable_children, Function::meta, ::GOAL::Variable::meta, "", "");
			::Uml::SetChildRole(Function::meta_ControlBase_children, Function::meta, ::GOAL::ControlBase::meta, "", "");
			::Uml::SetChildRole(Function::meta_ConstBase_children, Function::meta, ::GOAL::ConstBase::meta, "", "");
			::Uml::SetChildRole(Function::meta_CommonConnection_children, Function::meta, ::GOAL::CommonConnection::meta, "", "");
			::Uml::SetChildRole(Function::meta_IOBase_children, Function::meta, ::GOAL::IOBase::meta, "", "");
			::Uml::SetChildRole(Function::meta_BinaryOperator_children, Function::meta, ::GOAL::BinaryOperator::meta, "", "");
			::Uml::SetChildRole(Function::meta_Return_children, Function::meta, ::GOAL::Return::meta, "", "");
			::Uml::SetChildRole(Function::meta_UnaryOperator_children, Function::meta, ::GOAL::UnaryOperator::meta, "", "");
			::Uml::SetChildRole(Function::meta_InfixOperators_children, Function::meta, ::GOAL::InfixOperators::meta, "", "");
			::Uml::SetChildRole(Function::meta_FunctionCall_children, Function::meta, ::GOAL::FunctionCall::meta, "", "");
			::Uml::SetChildRole(Function::meta_IndexOperator_children, Function::meta, ::GOAL::IndexOperator::meta, "", "");
			::Uml::SetChildRole(IndexOperator::meta_UnaryOperator_children, IndexOperator::meta, ::GOAL::UnaryOperator::meta, "", "");
			::Uml::SetChildRole(IndexOperator::meta_BinaryOperator_children, IndexOperator::meta, ::GOAL::BinaryOperator::meta, "", "");
			::Uml::SetChildRole(IndexOperator::meta_ConstBase_children, IndexOperator::meta, ::GOAL::ConstBase::meta, "", "");
			::Uml::SetChildRole(IndexOperator::meta_Input_children, IndexOperator::meta, ::GOAL::Input::meta, "", "");
			::Uml::SetChildRole(IndexOperator::meta_IndexOperator_children, IndexOperator::meta, ::GOAL::IndexOperator::meta, "", "");
			::Uml::SetChildRole(IndexOperator::meta_FunctionCall_children, IndexOperator::meta, ::GOAL::FunctionCall::meta, "", "");
			::Uml::SetChildRole(IndexOperator::meta_InputOutput_children, IndexOperator::meta, ::GOAL::InputOutput::meta, "", "");
			::Uml::SetChildRole(IndexOperator::meta_BooleanOperators_children, IndexOperator::meta, ::GOAL::BooleanOperators::meta, "", "");
			::Uml::SetChildRole(IndexOperator::meta_Variable_children, IndexOperator::meta, ::GOAL::Variable::meta, "", "");
			::Uml::SetChildRole(IndexOperator::meta_CommonConnection_children, IndexOperator::meta, ::GOAL::CommonConnection::meta, "", "");
			::Uml::SetChildRole(Argument::meta_ComposableBase_children, Argument::meta, ::GOAL::ComposableBase::meta, "", "");
			::Uml::SetChildRole(For::meta_CodeAdapter_children, For::meta, ::GOAL::CodeAdapter::meta, "", "");
			::Uml::SetChildRole(For::meta_ConditionsAdapter_children, For::meta, ::GOAL::ConditionsAdapter::meta, "", "");
			::Uml::SetChildRole(ClassMember::meta_ComposableBase_children, ClassMember::meta, ::GOAL::ComposableBase::meta, "", "");
			::Uml::SetChildRole(CodeAdapter::meta_CommonConnection_children, CodeAdapter::meta, ::GOAL::CommonConnection::meta, "", "");
			::Uml::SetChildRole(CodeAdapter::meta_FunctionCall_children, CodeAdapter::meta, ::GOAL::FunctionCall::meta, "", "");
			::Uml::SetChildRole(CodeAdapter::meta_InfixOperators_children, CodeAdapter::meta, ::GOAL::InfixOperators::meta, "", "");
			::Uml::SetChildRole(CodeAdapter::meta_BinaryOperator_children, CodeAdapter::meta, ::GOAL::BinaryOperator::meta, "", "");
			::Uml::SetChildRole(CodeAdapter::meta_UnaryOperator_children, CodeAdapter::meta, ::GOAL::UnaryOperator::meta, "", "");
			::Uml::SetChildRole(CodeAdapter::meta_ConstBase_children, CodeAdapter::meta, ::GOAL::ConstBase::meta, "", "");
			::Uml::SetChildRole(CodeAdapter::meta_IndexOperator_children, CodeAdapter::meta, ::GOAL::IndexOperator::meta, "", "");
			::Uml::SetChildRole(CodeAdapter::meta_IOBase_children, CodeAdapter::meta, ::GOAL::IOBase::meta, "", "");
			::Uml::SetChildRole(CodeAdapter::meta_CodeAdapter_children, CodeAdapter::meta, ::GOAL::CodeAdapter::meta, "", "");
			::Uml::SetChildRole(CodeAdapter::meta_AccumulatorBase_children, CodeAdapter::meta, ::GOAL::AccumulatorBase::meta, "", "");
			::Uml::SetChildRole(CodeAdapter::meta_BooleanOperators_children, CodeAdapter::meta, ::GOAL::BooleanOperators::meta, "", "");
			::Uml::SetChildRole(CodeAdapter::meta_ControlBase_children, CodeAdapter::meta, ::GOAL::ControlBase::meta, "", "");
			::Uml::SetChildRole(CodeAdapter::meta_Variable_children, CodeAdapter::meta, ::GOAL::Variable::meta, "", "");
			::Uml::SetChildRole(If::meta_ConditionsAdapter_children, If::meta, ::GOAL::ConditionsAdapter::meta, "", "");
			::Uml::SetChildRole(If::meta_CodeAdapter_children, If::meta, ::GOAL::CodeAdapter::meta, "", "");
			::Uml::SetChildRole(While::meta_CodeAdapter_children, While::meta, ::GOAL::CodeAdapter::meta, "", "");
			::Uml::SetChildRole(While::meta_ConditionsAdapter_children, While::meta, ::GOAL::ConditionsAdapter::meta, "", "");
			::Uml::SetChildRole(ClassAdapter::meta_ClassMember_children, ClassAdapter::meta, ::GOAL::ClassMember::meta, "", "");
			::Uml::SetChildRole(ClassAdapter::meta_ClassConnection_children, ClassAdapter::meta, ::GOAL::ClassConnection::meta, "", "");
			::Uml::SetChildRole(ClassAdapter::meta_ConstBase_children, ClassAdapter::meta, ::GOAL::ConstBase::meta, "", "");
			::Uml::SetChildRole(ClassAdapter::meta_Class_children, ClassAdapter::meta, ::GOAL::Class::meta, "", "");
			::Uml::SetChildRole(ClassAdapter::meta_Function_children, ClassAdapter::meta, ::GOAL::Function::meta, "", "");
			::Uml::SetChildRole(Array::meta_Const_children, Array::meta, ::GOAL::Const::meta, "", "");
			::Uml::SetChildRole(Array::meta_ComposableBase_children, Array::meta, ::GOAL::ComposableBase::meta, "", "");
			::Uml::SetChildRole(Const::meta_ComposableBase_children, Const::meta, ::GOAL::ComposableBase::meta, "", "");
			::Uml::SetChildRole(VariableBase::meta_VariableRef_children, VariableBase::meta, ::GOAL::VariableRef::meta, "", "");
			::Uml::SetChildRole(VariableBase::meta_ComposableBase_children, VariableBase::meta, ::GOAL::ComposableBase::meta, "", "");
			::Uml::SetChildRole(ConditionsAdapter::meta_IndexOperator_children, ConditionsAdapter::meta, ::GOAL::IndexOperator::meta, "", "");
			::Uml::SetChildRole(ConditionsAdapter::meta_BooleanOperators_children, ConditionsAdapter::meta, ::GOAL::BooleanOperators::meta, "", "");
			::Uml::SetChildRole(ConditionsAdapter::meta_Input_children, ConditionsAdapter::meta, ::GOAL::Input::meta, "", "");
			::Uml::SetChildRole(ConditionsAdapter::meta_InputOutput_children, ConditionsAdapter::meta, ::GOAL::InputOutput::meta, "", "");
			::Uml::SetChildRole(ConditionsAdapter::meta_Variable_children, ConditionsAdapter::meta, ::GOAL::Variable::meta, "", "");
			::Uml::SetChildRole(ConditionsAdapter::meta_BinaryOperator_children, ConditionsAdapter::meta, ::GOAL::BinaryOperator::meta, "", "");
			::Uml::SetChildRole(ConditionsAdapter::meta_CommonConnection_children, ConditionsAdapter::meta, ::GOAL::CommonConnection::meta, "", "");
			::Uml::SetChildRole(ConditionsAdapter::meta_ConstBase_children, ConditionsAdapter::meta, ::GOAL::ConstBase::meta, "", "");
			::Uml::SetChildRole(ConditionsAdapter::meta_UnaryOperator_children, ConditionsAdapter::meta, ::GOAL::UnaryOperator::meta, "", "");
			::Uml::SetChildRole(ConditionsAdapter::meta_FunctionCall_children, ConditionsAdapter::meta, ::GOAL::FunctionCall::meta, "", "");
			::Uml::SetChildRole(RootFolder::meta_CodeAdapter_children, RootFolder::meta, ::GOAL::CodeAdapter::meta, "", "");
			::Uml::SetChildRole(RootFolder::meta_ModuleAdapter_children, RootFolder::meta, ::GOAL::ModuleAdapter::meta, "", "");
			::Uml::SetChildRole(RootFolder::meta_ClassAdapter_children, RootFolder::meta, ::GOAL::ClassAdapter::meta, "", "");
			::Uml::SetChildRole(RootFolder::meta_ConditionsAdapter_children, RootFolder::meta, ::GOAL::ConditionsAdapter::meta, "", "");
			::Uml::SetChildRole(RootFolder::meta_RootFolder_children, RootFolder::meta, ::GOAL::RootFolder::meta, "", "");

			// Association roles 
			::Uml::SetAssocRole(RightHandSideObject::meta_dstOutputConnection, RightHandSideObject::meta, ::GOAL::Argument::meta, "srcOutputConnection");
			::GOAL::Argument::meta_srcOutputConnection_rev = RightHandSideObject::meta_dstOutputConnection;
			::Uml::SetAssocRole(RightHandSideObject::meta_dstAssignmentRHSConnection, RightHandSideObject::meta, ::GOAL::InfixOperators::meta, "srcAssignmentRHSConnection");
			::GOAL::InfixOperators::meta_srcAssignmentRHSConnection_rev = RightHandSideObject::meta_dstAssignmentRHSConnection;
			::Uml::SetAssocRole(RightHandSideObject::meta_dstNonModifyingConnection, RightHandSideObject::meta, ::GOAL::RightHandSideObject::meta, "srcNonModifyingConnection");
			::GOAL::RightHandSideObject::meta_srcNonModifyingConnection_rev = RightHandSideObject::meta_dstNonModifyingConnection;
			::Uml::SetAssocRole(RightHandSideObject::meta_srcNonModifyingConnection, RightHandSideObject::meta, ::GOAL::RightHandSideObject::meta, "dstNonModifyingConnection");
			::GOAL::RightHandSideObject::meta_dstNonModifyingConnection_rev = RightHandSideObject::meta_srcNonModifyingConnection;
			::Uml::SetAssocRole(Output::meta_srcOutputConnection, Output::meta, ::GOAL::InfixOperators::meta, "dstOutputConnection");
			::GOAL::InfixOperators::meta_dstOutputConnection_rev = Output::meta_srcOutputConnection;
			::Uml::SetAssocRole(FunctionCall::meta_ref, FunctionCall::meta, ::GOAL::Function::meta, "referedbyFunctionRef");
			::Uml::SetAssocRole(Function::meta_referedbyFunctionRef, Function::meta, ::GOAL::FunctionCall::meta, "ref");
			::Uml::SetAssocRole(IndexOperator::meta_srcIndexConnection, IndexOperator::meta, ::GOAL::VariableBase::meta, "dstIndexConnection");
			::GOAL::VariableBase::meta_dstIndexConnection_rev = IndexOperator::meta_srcIndexConnection;
			::Uml::SetAssocRole(IndexOperator::meta_srcArrayAssignmentConnection, IndexOperator::meta, ::GOAL::InfixOperators::meta, "dstArrayAssignmentConnection");
			::GOAL::InfixOperators::meta_dstArrayAssignmentConnection_rev = IndexOperator::meta_srcArrayAssignmentConnection;
			::Uml::SetAssocRole(InfixOperators::meta_srcAssignmentRHSConnection, InfixOperators::meta, ::GOAL::RightHandSideObject::meta, "dstAssignmentRHSConnection");
			::GOAL::RightHandSideObject::meta_dstAssignmentRHSConnection_rev = InfixOperators::meta_srcAssignmentRHSConnection;
			::Uml::SetAssocRole(InfixOperators::meta_dstOutputConnection, InfixOperators::meta, ::GOAL::Output::meta, "srcOutputConnection");
			::GOAL::Output::meta_srcOutputConnection_rev = InfixOperators::meta_dstOutputConnection;
			::Uml::SetAssocRole(InfixOperators::meta_dstArrayAssignmentConnection, InfixOperators::meta, ::GOAL::IndexOperator::meta, "srcArrayAssignmentConnection");
			::GOAL::IndexOperator::meta_srcArrayAssignmentConnection_rev = InfixOperators::meta_dstArrayAssignmentConnection;
			::Uml::SetAssocRole(InfixOperators::meta_dstAssignmentConnection, InfixOperators::meta, ::GOAL::VariableBase::meta, "srcAssignmentConnection");
			::GOAL::VariableBase::meta_srcAssignmentConnection_rev = InfixOperators::meta_dstAssignmentConnection;
			::Uml::SetAssocRole(InfixOperators::meta_srcKeyboardConnection, InfixOperators::meta, ::GOAL::Input::meta, "dstKeyboardConnection");
			::GOAL::Input::meta_dstKeyboardConnection_rev = InfixOperators::meta_srcKeyboardConnection;
			::Uml::SetAssocRole(Input::meta_dstKeyboardConnection, Input::meta, ::GOAL::InfixOperators::meta, "srcKeyboardConnection");
			::GOAL::InfixOperators::meta_srcKeyboardConnection_rev = Input::meta_dstKeyboardConnection;
			::Uml::SetAssocRole(Argument::meta_srcOutputConnection, Argument::meta, ::GOAL::RightHandSideObject::meta, "dstOutputConnection");
			::GOAL::RightHandSideObject::meta_dstOutputConnection_rev = Argument::meta_srcOutputConnection;
			::Uml::SetAssocRole(VariableBase::meta_dstIndexConnection, VariableBase::meta, ::GOAL::IndexOperator::meta, "srcIndexConnection");
			::GOAL::IndexOperator::meta_srcIndexConnection_rev = VariableBase::meta_dstIndexConnection;
			::Uml::SetAssocRole(VariableBase::meta_srcAssignmentConnection, VariableBase::meta, ::GOAL::InfixOperators::meta, "dstAssignmentConnection");
			::GOAL::InfixOperators::meta_dstAssignmentConnection_rev = VariableBase::meta_srcAssignmentConnection;
			::Uml::SetAssocRole(ClassRef::meta_ref, ClassRef::meta, ::GOAL::Class::meta, "referedbyClassRef");
			::Uml::SetAssocRole(VariableRef::meta_ref, VariableRef::meta, ::GOAL::VariableRef_RefersTo_Base::meta, "referedbyVariableRef");
			::Uml::SetAssocRole(Class::meta_referedbyClassRef, Class::meta, ::GOAL::ClassRef::meta, "ref");
			::Uml::SetAssocRole(Class::meta_dstBridgeConnection, Class::meta, ::GOAL::Class::meta, "srcBridgeConnection");
			::GOAL::Class::meta_srcBridgeConnection_rev = Class::meta_dstBridgeConnection;
			::Uml::SetAssocRole(Class::meta_srcBridgeConnection, Class::meta, ::GOAL::Class::meta, "dstBridgeConnection");
			::GOAL::Class::meta_dstBridgeConnection_rev = Class::meta_srcBridgeConnection;
			::Uml::SetAssocRole(VariableRef_RefersTo_Base::meta_referedbyVariableRef, VariableRef_RefersTo_Base::meta, ::GOAL::VariableRef::meta, "ref");
			IndexConnection::meta_dstIndexConnection_end_ = ::GOAL::VariableBase::meta_dstIndexConnection;
			IndexConnection::meta_srcIndexConnection_end_ = ::GOAL::IndexOperator::meta_srcIndexConnection;
			NonModifyingConnection::meta_srcNonModifyingConnection_end_ = ::GOAL::RightHandSideObject::meta_srcNonModifyingConnection;
			NonModifyingConnection::meta_dstNonModifyingConnection_end_ = ::GOAL::RightHandSideObject::meta_dstNonModifyingConnection;
			OutputConnection::meta_dstOutputConnection_end_ = ::GOAL::InfixOperators::meta_dstOutputConnection;
			OutputConnection::meta_srcOutputConnection_end_ = ::GOAL::Output::meta_srcOutputConnection;
			ArrayAssignmentConnection::meta_dstArrayAssignmentConnection_end_ = ::GOAL::InfixOperators::meta_dstArrayAssignmentConnection;
			ArrayAssignmentConnection::meta_srcArrayAssignmentConnection_end_ = ::GOAL::IndexOperator::meta_srcArrayAssignmentConnection;
			AssignmentRHSConnection::meta_srcAssignmentRHSConnection_end_ = ::GOAL::InfixOperators::meta_srcAssignmentRHSConnection;
			AssignmentRHSConnection::meta_dstAssignmentRHSConnection_end_ = ::GOAL::RightHandSideObject::meta_dstAssignmentRHSConnection;
			ArgumentConnection::meta_srcOutputConnection_end_ = ::GOAL::Argument::meta_srcOutputConnection;
			ArgumentConnection::meta_dstOutputConnection_end_ = ::GOAL::RightHandSideObject::meta_dstOutputConnection;
			AssignmentConnection::meta_srcAssignmentConnection_end_ = ::GOAL::VariableBase::meta_srcAssignmentConnection;
			AssignmentConnection::meta_dstAssignmentConnection_end_ = ::GOAL::InfixOperators::meta_dstAssignmentConnection;
			KeyboardConnection::meta_dstKeyboardConnection_end_ = ::GOAL::Input::meta_dstKeyboardConnection;
			KeyboardConnection::meta_srcKeyboardConnection_end_ = ::GOAL::InfixOperators::meta_srcKeyboardConnection;
			BridgeConnection::meta_srcBridgeConnection_end_ = ::GOAL::Class::meta_srcBridgeConnection;
			BridgeConnection::meta_dstBridgeConnection_end_ = ::GOAL::Class::meta_dstBridgeConnection;

			// namespaces
			
		}

	 void Initialize()
	{
		static bool first = true;
		if(!first) return;
		first = false;
		::Uml::Initialize();

		ASSERT( umldiagram == Udm::null );
		UdmStatic::StaticDataNetwork * meta_dn = new UdmStatic::StaticDataNetwork(::Uml::diagram);
		meta_dn->CreateNew("GOAL.mem", "", ::Uml::Diagram::meta, Udm::CHANGES_LOST_DEFAULT);
		umldiagram = ::Uml::Diagram::Cast(meta_dn->GetRootObject());
		umldiagram.name() ="GOAL";
		umldiagram.version() ="1.00";
		InitializeDgr();

		InitCrossNSInheritence();
		InitCrossNSCompositions();
		InitCrossNSAssociations();

	};

	 void Initialize(const ::Uml::Diagram &dgr)
	{
		umldiagram = dgr;
		InitializeDgrSetupMeta(dgr);
		InitializeDgr2();

	};

	 Udm::UdmDiagram diagram = { &umldiagram, Initialize };
	static struct _regClass
	{
		_regClass()
		{
			Udm::MetaDepository::StoreDiagram("GOAL", diagram);
		};
		~_regClass()
		{
			Udm::MetaDepository::RemoveDiagram("GOAL");
		};
	} __regUnUsed;

}
// END GOAL.cpp
